SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Building Secure Mashups With OpenAjax




Jon Ferraiolo
IBM and OpenAjax Alliance
TS-5030
You will learn:
    •Mashups - the promise and challenges
    •OpenAjax Alliance mashup initiatives
You will see:
    •OpenAjax Mashups in action




                                 2008 JavaOneSM Conference | java.sun.com/javaone |   2
Agenda

 Introducing OpenAjax Alliance
 Secure Mashup Initiatives Overview
 OpenAjax Hub 1.1
 OpenAjax Metadata for Widgets
 Demo
 Summary




                                      2008 JavaOneSM Conference | java.sun.com/javaone |   3
Why did the industry form OpenAjax
Alliance?
 Interoperability problems across Ajax toolkits
  • Sometimes toolkits step on each other
  • Almost never do toolkits integrate with each other
  • Interoperability/integration is necessary for mashups to work
 Education
  • For IT managers and Web developers, Ajax can be complex and
    confusing – tyranny of choice
 Help drive the future of the Ajax ecosystem




                                                  2008 JavaOneSM Conference | java.sun.com/javaone |   4
OpenAjax Alliance – Today
                                                2006                                                   2007                               2008
                              Q1           Q2           Q3           Q4            Q1            Q2              Q3           Q4            Q1

Organizational
                          15 companies First meeting,      -------------------- Subsequent face-to-face meetings ------------------------
                          join “OpenAjax” decision to form
Marketing WG                              OpenAjax Alliance
 Web site, white papers
                                                             1 white paper             4 white papers             5 white papers
Interoperability WG
                                                  1.0: spec & open source     InteropFest   Update       InteropFest   Finalize
 OpenAjax Hub 1.0
 OpenAjax Hub 1.1                                                       ServerTF, CommTF SMash,1.1 Roadmap 1.1 open source/spec
 OpenAjax Registry                                                                                   Registry first drafts                  Feedback


IDE WG                                                                             Use cases & requirements             Proposals        Spec

Security TF                                                                                               White paper        Liaison as needed

Mobile TF                                                                                                    White paper, Device APIs

Gadgets TF                                                                                                                    Gadget metadata

Runtime TF                                                                                                                         Feature list


                                                                                                 2008 JavaOneSM Conference | java.sun.com/javaone |    5
OpenAjax Hub 1.0

 What is it?
  • Small bit of standard JavaScript™ technology (< 3K after compaction)
  • Enables multiple Ajax runtimes to work together
 Version 1.0 features
  • Ajax library registration
     • OpenAjax.hub.registerLibrary()
  • Simple publish/subscribe engine (the pub sub hub)
     • OpenAjax.hub.publish(topicName, payload)
     • OpenAjax.hub.subscribe(topicName, callbackFunction)




                                                     2008 JavaOneSM Conference | java.sun.com/javaone |   6
OpenAjax Hub 1.0 – an example


Assume multiple Ajax
                                         OpenAjax Hub 1.0 Example
toolkits:                                This is a mockup of a Web
• UTILS.js – Various utils, inc. XHR     application that uses UI controls
                                         from multiple Ajax toolkits.
• CALENDAR.js – Calendar control
• DATAGRID.js – Powerful tables
• CHARTS.js – Charting utilities
     The visual controls need to react
     to new server data and to each
     other and update their views
     appropriately




                                                                             2008 JavaOneSM Conference | java.sun.com/javaone |   7
Example – under the hood
  <html>
    <head>
      <script src="OpenAjax.js"/>
      <script src="UTILS.js"/>
      <script src="CALENDAR.js"/>
      <script src="CHARTS.js"/>
      <script src="DATAGRID.js"/>
      <script>
  function MyCalendarCallback(...) {
    OpenAjax.hub.publish("myapp.newdate", newdate);
  }
  function NewDateCB(eventname, pubData, subData) {…}
  OpenAjax.hub.subscribe("myapp.newdate", NewDateCB);
      </script>
    </head>



                                    2008 JavaOneSM Conference | java.sun.com/javaone |   8
OpenAjax InteropFests
     Objectives:
      • Verify that OpenAjax Hub is reliable, performant, and suitable
      • Allows members to check if they are OpenAjax Conformant
Jan-March 2007                                               July-Sept 2007




12 toolkits participated                                     14 organizations, 20 toolkits participated
http://www.openajax.org/member/wiki/InteropFest_2007_March   http://www.openajax.org/member/wiki/InteropFest_1.0

                                                                                    2008 JavaOneSM Conference | java.sun.com/javaone |   9
InteropFest Participants

       Participating organizations         Participating toolkits
   24SevenOffice                     AjaxEngine
   Apache XAP                        Apache XAP
   Dojo Foundation                   Dojo Toolkit
   IBM                               Ext
   ILOG                              ILOG JViews
   DWR/Getahead                      IT Mill Toolkit
   IT Mill                           jMaki
   Lightstreamer                     JQuery
   Microsoft                         Lightstreamer
   Nexaweb                           Microsoft Ajax Library
   OpenLink SW                       Nexaweb Ajax Client
   Open Spot                         OAT: OpenLink AJAX Toolkit
   Software AG                       OpenSpot CalcDesk
   Sun Microsystems                  Prototype
   TIBCO                             script.aculo.us
                                     Software AG's webMethods/CAF
                                     TIBCO General Interface
                                     24SevenOffice Vili
                                     YUI

                                                       2008 JavaOneSM Conference | java.sun.com/javaone | 10
OpenAjax Hub 1.0 status

 Status
  • Approved

 Specification
  • http://www.openajax.org/member/wiki/OpenAjax_Hub_1.0_Specification

 Reference implementation at SourceForge
  • http://openajaxallianc.sourceforge.net




                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 11
Agenda

 Introducing OpenAjax Alliance
 Secure Mashups Overview
 OpenAjax Hub 1.1
 OpenAjax Metadata for Widgets
 Demo
 Summary




                                 2008 JavaOneSM Conference | java.sun.com/javaone | 12
Mashups – the self-service business pattern




                               2008 JavaOneSM Conference | java.sun.com/javaone | 13
Business value of mashups
                   • Faster, cheaper delivery of applications
                     • Save time and money through reuse and
                         lightweight integration techniques
                     •   Lower skill set needed to assembly new
                         applications
                   • Support innovation and new business
                    opportunities
                     • Users empowered to innovate and explore
                   • Gain valuable insights
                     • Due to remixing enterprise and web
                         information
                   • Better align IT and business
                     • Do-it-yourself IT will be expected by
                         Facebook generation
                   • Extend reach and value of SOA
                     • Service reuse illuminates the business value
                         of SOA
                                       2008 JavaOneSM Conference | java.sun.com/javaone | 14
Mashup software


                  • Mashup tools
                     • Widget and feed discovery
                     • Application assembly
                     • Instant deployment

                  • Widgets
                     • Pre-packaged, remixable mini-applications
                     • Usually tied to a back-end web service
                        • Sometimes leveraging previous
                          investment in SOA
                    •   Public or company-private
                    •   Key enabler of the long tail


                                      2008 JavaOneSM Conference | java.sun.com/javaone | 15
Widget innovation – no shortage




                             2008 JavaOneSM Conference | java.sun.com/javaone | 16
Industry challenges



 Interoperability
  • Dozens of proprietary technologies
  • Good news: many use the “Web Runtime” (i.e., Ajax)!
  • Bad news: even when using the Web Runtime, widgets are not
    interoperable

 Security
  • The power of mashups – comes largely from discovering and
    integrating great widgets from 3rd parties
  • But 3rd party widgets might be malicious

                                                 2008 JavaOneSM Conference | java.sun.com/javaone | 17
Security vulnerabilities
 Web browser
 URL: http://example.com/mashup_builder/my_mashup1

   Widget-C                               Widget-E                                                      (trusted)

              Communicates in the                                                                 Company server
              background with one
              of the company’s web
                      servers                                                                         (untrusted)
                                                     Communicates in the
                                                      background with a                             Public server
                                      Message          public web server
                                       passing
   Widget-A                            between                                                        (untrusted)
                                                     Communicates in the
                                     the widgets
                                                      background with a                             Public server
                                                       public web server




                                                                                  What if one of the
                                                                                widgets is malicious?


                                                                           2008 JavaOneSM Conference | java.sun.com/javaone | 18
OpenAjax – Addressing the challenges
      Web browser
      URL: http://example.com/mashup_builder/my_mashup1

               Widget-C                                Widget-E                                              (trusted)

                  Communicates in the
  (1) OpenAjax Hub 1.1                                                                                 Company server
                  background with one
  provides framework for
                  of the company’s web
 loading/isolating widgetsservers                                                                          (untrusted)
   and secure message                                     Communicates in the
       management                                          background with a                             Public server
                                          Message           public web server
                                           passing
              Widget-A
(4) Open source mini-                      between                                                         (untrusted)
 mashup application                                       Communicates in the
                                         the widgets
shows how to use all of                                    background with a                             Public server
                                                            public web server
  these technologies
                                                        (2) OpenAjax Metadata
                                                           defines an industry          (3) Open source transcoders
                                                        standard widget wrapper             convert popular existing
                                                                 format                 proprietary gadget formats into
                                                                                              OpenAjax Metadata


                                                                                2008 JavaOneSM Conference | java.sun.com/javaone | 19
Agenda

 Introducing OpenAjax Alliance
 Secure Mashup Initiatives Overview
 OpenAjax Hub 1.1
 OpenAjax Metadata for Widgets
 Demo
 Summary




                                      2008 JavaOneSM Conference | java.sun.com/javaone | 20
OpenAjax Hub 1.1 – New features

 OpenAjax Hub 1.0 addresses pub/sub within a single browser
 frame

 OpenAjax Hub 1.1 adds the following:
  • Pub/sub across frames
  • Framework for secure mashups
  • Pub/sub between clients and servers (i.e., Comet)




                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 21
Mashups: security issues

 Browser same-origin policy prevents interaction across origins
 Typical Solution: bypass same-origin policy by
  • Dynamic SCRIPT tag to another server (client-side)
  • Proxying content (server-side mashups)
  • “IFrame proxy” (window.location fragment identifier)




                                           2008 JavaOneSM Conference | java.sun.com/javaone | 22
SMash

 SMash stands for “Secure Mashups”
  • Secure handling of 3rd party mashup components
  • Runs in today’s browsers (without plugins)
 Designed and implemented at IBM™ Research (beginning of
 2007)
  • Open-sourced (openajaxallianc.sourceforge.net) in August 2007
  • Research Paper describing SMash in WWW 2008 Conference
 High-level APIs, independent of implementation technology
  • Fragment communication, HTML5 postMessage, Java™ platform,
   Flash etc.
 • Will still work when browsers add native support for secure cross-
   frame messaging


                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 23
OpenAjax Hub 1.1: Concepts

 Managed hub-instances
  • A frame/window can have multiple managed hub-instances
  • Hub-instance has one manager, multiple clients
 Fine-grained policy hooks for manager
  • For security policy, mediation between incompatible clients etc.
  • No policy encoded in hub
 Providers: Multiple communication providers for client to
 hub-instance communication
  • Provider and Hub SPI
  • Current providers: inline, smash (using code from SMash)




                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 24
OpenAjax Hub 1.1: Architecture

                                Gadget/Widget Support
                                   (OpenAjax or …)

                                                 API


                                        Hub 1.1 Code
                                         SPI
                                                                                            Hub 1.1
                       smash provider                   inline provider

                           HTML5 postMessage provider (future)
 Gadget/Widget layer sits on top of OpenAjax Hub 1.1
 Hub supports composite gadgets with
  • any level of nesting
  • any combination of gadget types (inline, iframe, …) e.g. inline gadget-foo composed of iframe
     gadget-bar and inline gadget-baz



                                                                       2008 JavaOneSM Conference | java.sun.com/javaone | 25
OpenAjax Hub 1.1: Simple example
    Web browser
    URL:    http://example.com/mashup_builder/my_mashup1

    Mashup container                      Widget-C                              Widget-E
                                                  Broadcast an event using
                                                  connHandle.publish()




     Hub 1.1 (Managed Hub)                            Hub 1.1                           Hub 1.1
             inline provider                     inline provider                  smash provider

           smash provider                 Widget-A
                                                Subscribe to a topic and register a
      Security                                  callback function using
      manager                                   connHandle.subscribe()

                                                                     Invoke the callback
                                                                     function

                                                                 Hub 1.1
                                                            smash provider


                                                                              2008 JavaOneSM Conference | java.sun.com/javaone | 26
OpenAjax Hub 1.1: the steps
    Web browser
    URL:        http://example.com/mashup_builder/my_mashup1

     Mashup container                             Widget-C                                  Widget-E
        1                2       Load the
    Initialize and            widgets used              4 Broadcast an event using
                                                           connHandle.publish()
    create a                 in the mashup
    “Managed Hub”


     Hub 1.1 (Managed Hub)
                     7                                     5 Hub 1.1                                Hub 1.1
    8            inline provider             6            inline provider                     smash provider
            9
            smash provider                        Widget-A

        Security                                      3 Subscribe to a topic and register a
                                                         callback function using
        manager                                          connHandle.subscribe()
                                                 10
                                                                            12 Invoke the callback
                                                                               function

                                                                            Hub 1.1
                                                                       11
                                                                     smash provider


                                                                                          2008 JavaOneSM Conference | java.sun.com/javaone | 27
Hub 1.1 status

 Specification
  • First draft spec – far along
  • http://www.openajax.org/member/wiki/OpenAjax_Hub_1.1_Specific
    ation
 Reference implementation at SourceForge
  • First implementation (far along)
  • http://openajaxallianc.sourceforge.net
 Timeline for Hub 1.1
  • Now: Detailed review within Interoperability Working Group
  • Spring 2008: Stable, complete spec
  • July-September 2008: InteropFest (with OpenAjax Metadata)
  • Fall 2008: Finalize and approve


                                                 2008 JavaOneSM Conference | java.sun.com/javaone | 28
Agenda

 Introducing OpenAjax Alliance
 Secure Mashup Initiatives Overview
 OpenAjax Hub 1.1
 OpenAjax Metadata for Widgets
 Demo
 Summary




                                      2008 JavaOneSM Conference | java.sun.com/javaone | 29
Widget innovation – no shortage




                             2008 JavaOneSM Conference | java.sun.com/javaone | 30
OpenAjax Metadata – industry problems
 IDE interoperability problem
  • Countless Ajax libraries
  • Each library has its own approach to documenting
     • JavaScript APIs
     • UI controls
  • As a result, difficult to deliver visual authoring tools that integrate with the
    full set of Ajax libraries in the industry

 Mashup interoperability problem
  • Dozens of widget formats (Google, Yahoo, Apple, Microsoft…)
  • Current industry situation:
     • Widgets developers provide multiple versions of their widgets
     • To do a mashup, you usually need a programmer
  • As a result, difficult to deliver visual mashup tools that integrate with the full
    set of widgets in the industry

                                                            2008 JavaOneSM Conference | java.sun.com/javaone | 31
OpenAjax Metadata – what it provides

 (IDE WG) Ajax library metadata “intermediary” standard
  • Standard XML for describing
     • JavaScript APIs
     • Widgets
  • Committee includes
     • Adobe, Aptana, Dojo, Eclipse, IBM, Microsoft, Sun, TIBCO, and Zend


 (Gadgets TF) Mashup gadgets “intermediary” standard
  • Standard XML for describing a mashup component
  • But mashup gadgets have special needs
     • List of topics that they produce and consume (i.e., pub/sub)
     • Security issues related to secure mashups


                                                        2008 JavaOneSM Conference | java.sun.com/javaone | 32
OpenAjax Metadata sample code
<widget xmlns="http://ns.openajax.org/widgets">

 <properties>
   <property name="Addr" type="Loc" listen="true" />
 </properties>

 <content>
   <!-- HTML+JavaScript go here -->
 </content>

</widget>




                                      2008 JavaOneSM Conference | java.sun.com/javaone | 33
OpenAjax Metadata status

 Specification
  • First draft spec - far along
  • http://www.openajax.org/member/wiki/OpenAjax_Metadata_Specification
 Open source
  • Gadget transcoders
  • Mini mashup application
 Timeline for OpenAjax Metadata
  • Now: Finishing spec within IDE Working Group
  • Spring 2008: Stable, complete spec
  • July-September 2008: InteropFest (with OpenAjax Hub 1.1)
  • Fall 2008: Finalize and approve



                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 34
OpenAjax – Addressing the challenges
      Web browser
      URL: http://example.com/mashup_builder/my_mashup1

               Widget-C                                Widget-E                                              (trusted)

                  Communicates in the
  (1) OpenAjax Hub 1.1                                                                                 Company server
                  background with one
  provides framework for
                  of the company’s web
 loading/isolating widgetsservers                                                                          (untrusted)
   and secure message                                     Communicates in the
       management                                          background with a                             Public server
                                          Message           public web server
                                           passing
              Widget-A
(4) Open source mini-                      between                                                         (untrusted)
 mashup application                                       Communicates in the
                                         the widgets
shows how to use all of                                    background with a                             Public server
                                                            public web server
  these technologies
                                                        (2) OpenAjax Metadata
                                                           defines an industry          (3) Open source transcoders
                                                        standard widget wrapper             convert popular existing
                                                                 format                 proprietary gadget formats into
                                                                                              OpenAjax Metadata


                                                                                2008 JavaOneSM Conference | java.sun.com/javaone | 35
OpenAjax Mashups in action




                             2008 JavaOneSM Conference | java.sun.com/javaone | 36
Summary

 Mashups offer both promise, but have challenges
  • Security
  • Interoperability
 OpenAjax Alliance is addressing the challenges
  • OpenAjax Hub 1.1
  • OpenAjax Metadata




                                         2008 JavaOneSM Conference | java.sun.com/javaone | 37
For More Information

 Web site:    http://www.openajax.org
 Wiki:        http://www.openajax.org/member/wiki
 Blog:        http://www.openajax.org/blog
 Mail list:   public@openajax.org
 Email:       Jon Ferraiolo <jferrai@us.ibm.com>




                                       2008 JavaOneSM Conference | java.sun.com/javaone | 38
Jon Ferraiolo, IBM & OpenAjax Alliance
TS-5030




                                         2008 JavaOneSM Conference | java.sun.com/javaone | 39

Mais conteúdo relacionado

Mais procurados

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MoreShaun Smith
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
Oracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetOracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetEdwin Biemond
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Simon Ritter
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and ContainerWolfgang Weigend
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8PT.JUG
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015Edward Burns
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Boost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsBoost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsMarta Rauch
 
Using oracle vm virtual box as your development platform
Using oracle vm virtual box as your development platformUsing oracle vm virtual box as your development platform
Using oracle vm virtual box as your development platformOTN Systems Hub
 
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...Capgemini
 
OpenStack and MySQL
OpenStack and MySQLOpenStack and MySQL
OpenStack and MySQLMatt Lord
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 

Mais procurados (20)

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
 
MySQL
MySQLMySQL
MySQL
 
Oracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetOracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with Puppet
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9Modularization With Project Jigsaw in JDK 9
Modularization With Project Jigsaw in JDK 9
 
Microservices and Container
Microservices and ContainerMicroservices and Container
Microservices and Container
 
Introducing Java 8
Introducing Java 8Introducing Java 8
Introducing Java 8
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Boost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIsBoost Your Content Strategy for REST APIs
Boost Your Content Strategy for REST APIs
 
Using oracle vm virtual box as your development platform
Using oracle vm virtual box as your development platformUsing oracle vm virtual box as your development platform
Using oracle vm virtual box as your development platform
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
How Capgemini Built a Pan-European Tax Messaging System Using Oracle Fusion M...
 
OpenStack and MySQL
OpenStack and MySQLOpenStack and MySQL
OpenStack and MySQL
 
Enterprise Java Web Application Frameworks Sample Stack Implementation
Enterprise Java Web Application Frameworks   Sample Stack ImplementationEnterprise Java Web Application Frameworks   Sample Stack Implementation
Enterprise Java Web Application Frameworks Sample Stack Implementation
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 

Destaque

5G wireless technology Report
5G wireless technology Report5G wireless technology Report
5G wireless technology ReportHanamanta N B
 
Coaxial cable and its types
Coaxial cable and its typesCoaxial cable and its types
Coaxial cable and its typesAdeel Khurram
 
Coaxial cable by alina baber
Coaxial cable by alina baberCoaxial cable by alina baber
Coaxial cable by alina baberAlina Baber
 
Coaxial Cable
Coaxial CableCoaxial Cable
Coaxial CableMissAnam
 
Population dynamics presentation
Population dynamics presentationPopulation dynamics presentation
Population dynamics presentationJackieAndrews
 

Destaque (6)

5G wireless technology Report
5G wireless technology Report5G wireless technology Report
5G wireless technology Report
 
Coaxial cable and its types
Coaxial cable and its typesCoaxial cable and its types
Coaxial cable and its types
 
Population dynamics
Population dynamicsPopulation dynamics
Population dynamics
 
Coaxial cable by alina baber
Coaxial cable by alina baberCoaxial cable by alina baber
Coaxial cable by alina baber
 
Coaxial Cable
Coaxial CableCoaxial Cable
Coaxial Cable
 
Population dynamics presentation
Population dynamics presentationPopulation dynamics presentation
Population dynamics presentation
 

Semelhante a Building Secure Mashups With OpenAjax

Interoperable Ajax Tools And Mashups Ferraiolo
Interoperable Ajax Tools And Mashups FerraioloInteroperable Ajax Tools And Mashups Ferraiolo
Interoperable Ajax Tools And Mashups Ferraiolorajivmordani
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring bootRam Maddali
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsJeff Potts
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsJAX London
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)My own sweet home!
 
Survey of restful web services frameworks
Survey of restful web services frameworksSurvey of restful web services frameworks
Survey of restful web services frameworksVijay Prasad Gupta
 
TDC2018SP | Trilha Cloud - Why Apache CloudStack
TDC2018SP | Trilha Cloud - Why Apache CloudStackTDC2018SP | Trilha Cloud - Why Apache CloudStack
TDC2018SP | Trilha Cloud - Why Apache CloudStacktdc-globalcode
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
Monoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring BootMonoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring BootTiera Fann, MBA
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 
OpenAjax Alliance: Driving Ajax Standards and Interoperability
OpenAjax Alliance: Driving Ajax Standards and InteroperabilityOpenAjax Alliance: Driving Ajax Standards and Interoperability
OpenAjax Alliance: Driving Ajax Standards and Interoperabilityelliando dias
 

Semelhante a Building Secure Mashups With OpenAjax (20)

Interoperable Ajax Tools And Mashups Ferraiolo
Interoperable Ajax Tools And Mashups FerraioloInteroperable Ajax Tools And Mashups Ferraiolo
Interoperable Ajax Tools And Mashups Ferraiolo
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot03 monoliths to microservices with java ee and spring boot
03 monoliths to microservices with java ee and spring boot
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate Applications
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
 
Survey of restful web services frameworks
Survey of restful web services frameworksSurvey of restful web services frameworks
Survey of restful web services frameworks
 
TDC2018SP | Trilha Cloud - Why Apache CloudStack
TDC2018SP | Trilha Cloud - Why Apache CloudStackTDC2018SP | Trilha Cloud - Why Apache CloudStack
TDC2018SP | Trilha Cloud - Why Apache CloudStack
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Monoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring BootMonoliths to Microservices with Jave EE and Spring Boot
Monoliths to Microservices with Jave EE and Spring Boot
 
AhmedReda
AhmedRedaAhmedReda
AhmedReda
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
OpenAjax Alliance: Driving Ajax Standards and Interoperability
OpenAjax Alliance: Driving Ajax Standards and InteroperabilityOpenAjax Alliance: Driving Ajax Standards and Interoperability
OpenAjax Alliance: Driving Ajax Standards and Interoperability
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
SunMicroSystems
SunMicroSystemsSunMicroSystems
SunMicroSystems
 
Sunstate
SunstateSunstate
Sunstate
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

"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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"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
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
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
 

Último (20)

"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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
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
 

Building Secure Mashups With OpenAjax

  • 1. Building Secure Mashups With OpenAjax Jon Ferraiolo IBM and OpenAjax Alliance TS-5030
  • 2. You will learn: •Mashups - the promise and challenges •OpenAjax Alliance mashup initiatives You will see: •OpenAjax Mashups in action 2008 JavaOneSM Conference | java.sun.com/javaone | 2
  • 3. Agenda Introducing OpenAjax Alliance Secure Mashup Initiatives Overview OpenAjax Hub 1.1 OpenAjax Metadata for Widgets Demo Summary 2008 JavaOneSM Conference | java.sun.com/javaone | 3
  • 4. Why did the industry form OpenAjax Alliance? Interoperability problems across Ajax toolkits • Sometimes toolkits step on each other • Almost never do toolkits integrate with each other • Interoperability/integration is necessary for mashups to work Education • For IT managers and Web developers, Ajax can be complex and confusing – tyranny of choice Help drive the future of the Ajax ecosystem 2008 JavaOneSM Conference | java.sun.com/javaone | 4
  • 5. OpenAjax Alliance – Today 2006 2007 2008 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Organizational 15 companies First meeting, -------------------- Subsequent face-to-face meetings ------------------------ join “OpenAjax” decision to form Marketing WG OpenAjax Alliance Web site, white papers 1 white paper 4 white papers 5 white papers Interoperability WG 1.0: spec & open source InteropFest Update InteropFest Finalize OpenAjax Hub 1.0 OpenAjax Hub 1.1 ServerTF, CommTF SMash,1.1 Roadmap 1.1 open source/spec OpenAjax Registry Registry first drafts Feedback IDE WG Use cases & requirements Proposals Spec Security TF White paper Liaison as needed Mobile TF White paper, Device APIs Gadgets TF Gadget metadata Runtime TF Feature list 2008 JavaOneSM Conference | java.sun.com/javaone | 5
  • 6. OpenAjax Hub 1.0 What is it? • Small bit of standard JavaScript™ technology (< 3K after compaction) • Enables multiple Ajax runtimes to work together Version 1.0 features • Ajax library registration • OpenAjax.hub.registerLibrary() • Simple publish/subscribe engine (the pub sub hub) • OpenAjax.hub.publish(topicName, payload) • OpenAjax.hub.subscribe(topicName, callbackFunction) 2008 JavaOneSM Conference | java.sun.com/javaone | 6
  • 7. OpenAjax Hub 1.0 – an example Assume multiple Ajax OpenAjax Hub 1.0 Example toolkits: This is a mockup of a Web • UTILS.js – Various utils, inc. XHR application that uses UI controls from multiple Ajax toolkits. • CALENDAR.js – Calendar control • DATAGRID.js – Powerful tables • CHARTS.js – Charting utilities The visual controls need to react to new server data and to each other and update their views appropriately 2008 JavaOneSM Conference | java.sun.com/javaone | 7
  • 8. Example – under the hood <html> <head> <script src="OpenAjax.js"/> <script src="UTILS.js"/> <script src="CALENDAR.js"/> <script src="CHARTS.js"/> <script src="DATAGRID.js"/> <script> function MyCalendarCallback(...) { OpenAjax.hub.publish("myapp.newdate", newdate); } function NewDateCB(eventname, pubData, subData) {…} OpenAjax.hub.subscribe("myapp.newdate", NewDateCB); </script> </head> 2008 JavaOneSM Conference | java.sun.com/javaone | 8
  • 9. OpenAjax InteropFests Objectives: • Verify that OpenAjax Hub is reliable, performant, and suitable • Allows members to check if they are OpenAjax Conformant Jan-March 2007 July-Sept 2007 12 toolkits participated 14 organizations, 20 toolkits participated http://www.openajax.org/member/wiki/InteropFest_2007_March http://www.openajax.org/member/wiki/InteropFest_1.0 2008 JavaOneSM Conference | java.sun.com/javaone | 9
  • 10. InteropFest Participants Participating organizations Participating toolkits 24SevenOffice AjaxEngine Apache XAP Apache XAP Dojo Foundation Dojo Toolkit IBM Ext ILOG ILOG JViews DWR/Getahead IT Mill Toolkit IT Mill jMaki Lightstreamer JQuery Microsoft Lightstreamer Nexaweb Microsoft Ajax Library OpenLink SW Nexaweb Ajax Client Open Spot OAT: OpenLink AJAX Toolkit Software AG OpenSpot CalcDesk Sun Microsystems Prototype TIBCO script.aculo.us Software AG's webMethods/CAF TIBCO General Interface 24SevenOffice Vili YUI 2008 JavaOneSM Conference | java.sun.com/javaone | 10
  • 11. OpenAjax Hub 1.0 status Status • Approved Specification • http://www.openajax.org/member/wiki/OpenAjax_Hub_1.0_Specification Reference implementation at SourceForge • http://openajaxallianc.sourceforge.net 2008 JavaOneSM Conference | java.sun.com/javaone | 11
  • 12. Agenda Introducing OpenAjax Alliance Secure Mashups Overview OpenAjax Hub 1.1 OpenAjax Metadata for Widgets Demo Summary 2008 JavaOneSM Conference | java.sun.com/javaone | 12
  • 13. Mashups – the self-service business pattern 2008 JavaOneSM Conference | java.sun.com/javaone | 13
  • 14. Business value of mashups • Faster, cheaper delivery of applications • Save time and money through reuse and lightweight integration techniques • Lower skill set needed to assembly new applications • Support innovation and new business opportunities • Users empowered to innovate and explore • Gain valuable insights • Due to remixing enterprise and web information • Better align IT and business • Do-it-yourself IT will be expected by Facebook generation • Extend reach and value of SOA • Service reuse illuminates the business value of SOA 2008 JavaOneSM Conference | java.sun.com/javaone | 14
  • 15. Mashup software • Mashup tools • Widget and feed discovery • Application assembly • Instant deployment • Widgets • Pre-packaged, remixable mini-applications • Usually tied to a back-end web service • Sometimes leveraging previous investment in SOA • Public or company-private • Key enabler of the long tail 2008 JavaOneSM Conference | java.sun.com/javaone | 15
  • 16. Widget innovation – no shortage 2008 JavaOneSM Conference | java.sun.com/javaone | 16
  • 17. Industry challenges Interoperability • Dozens of proprietary technologies • Good news: many use the “Web Runtime” (i.e., Ajax)! • Bad news: even when using the Web Runtime, widgets are not interoperable Security • The power of mashups – comes largely from discovering and integrating great widgets from 3rd parties • But 3rd party widgets might be malicious 2008 JavaOneSM Conference | java.sun.com/javaone | 17
  • 18. Security vulnerabilities Web browser URL: http://example.com/mashup_builder/my_mashup1 Widget-C Widget-E (trusted) Communicates in the Company server background with one of the company’s web servers (untrusted) Communicates in the background with a Public server Message public web server passing Widget-A between (untrusted) Communicates in the the widgets background with a Public server public web server What if one of the widgets is malicious? 2008 JavaOneSM Conference | java.sun.com/javaone | 18
  • 19. OpenAjax – Addressing the challenges Web browser URL: http://example.com/mashup_builder/my_mashup1 Widget-C Widget-E (trusted) Communicates in the (1) OpenAjax Hub 1.1 Company server background with one provides framework for of the company’s web loading/isolating widgetsservers (untrusted) and secure message Communicates in the management background with a Public server Message public web server passing Widget-A (4) Open source mini- between (untrusted) mashup application Communicates in the the widgets shows how to use all of background with a Public server public web server these technologies (2) OpenAjax Metadata defines an industry (3) Open source transcoders standard widget wrapper convert popular existing format proprietary gadget formats into OpenAjax Metadata 2008 JavaOneSM Conference | java.sun.com/javaone | 19
  • 20. Agenda Introducing OpenAjax Alliance Secure Mashup Initiatives Overview OpenAjax Hub 1.1 OpenAjax Metadata for Widgets Demo Summary 2008 JavaOneSM Conference | java.sun.com/javaone | 20
  • 21. OpenAjax Hub 1.1 – New features OpenAjax Hub 1.0 addresses pub/sub within a single browser frame OpenAjax Hub 1.1 adds the following: • Pub/sub across frames • Framework for secure mashups • Pub/sub between clients and servers (i.e., Comet) 2008 JavaOneSM Conference | java.sun.com/javaone | 21
  • 22. Mashups: security issues Browser same-origin policy prevents interaction across origins Typical Solution: bypass same-origin policy by • Dynamic SCRIPT tag to another server (client-side) • Proxying content (server-side mashups) • “IFrame proxy” (window.location fragment identifier) 2008 JavaOneSM Conference | java.sun.com/javaone | 22
  • 23. SMash SMash stands for “Secure Mashups” • Secure handling of 3rd party mashup components • Runs in today’s browsers (without plugins) Designed and implemented at IBM™ Research (beginning of 2007) • Open-sourced (openajaxallianc.sourceforge.net) in August 2007 • Research Paper describing SMash in WWW 2008 Conference High-level APIs, independent of implementation technology • Fragment communication, HTML5 postMessage, Java™ platform, Flash etc. • Will still work when browsers add native support for secure cross- frame messaging 2008 JavaOneSM Conference | java.sun.com/javaone | 23
  • 24. OpenAjax Hub 1.1: Concepts Managed hub-instances • A frame/window can have multiple managed hub-instances • Hub-instance has one manager, multiple clients Fine-grained policy hooks for manager • For security policy, mediation between incompatible clients etc. • No policy encoded in hub Providers: Multiple communication providers for client to hub-instance communication • Provider and Hub SPI • Current providers: inline, smash (using code from SMash) 2008 JavaOneSM Conference | java.sun.com/javaone | 24
  • 25. OpenAjax Hub 1.1: Architecture Gadget/Widget Support (OpenAjax or …) API Hub 1.1 Code SPI Hub 1.1 smash provider inline provider HTML5 postMessage provider (future) Gadget/Widget layer sits on top of OpenAjax Hub 1.1 Hub supports composite gadgets with • any level of nesting • any combination of gadget types (inline, iframe, …) e.g. inline gadget-foo composed of iframe gadget-bar and inline gadget-baz 2008 JavaOneSM Conference | java.sun.com/javaone | 25
  • 26. OpenAjax Hub 1.1: Simple example Web browser URL: http://example.com/mashup_builder/my_mashup1 Mashup container Widget-C Widget-E Broadcast an event using connHandle.publish() Hub 1.1 (Managed Hub) Hub 1.1 Hub 1.1 inline provider inline provider smash provider smash provider Widget-A Subscribe to a topic and register a Security callback function using manager connHandle.subscribe() Invoke the callback function Hub 1.1 smash provider 2008 JavaOneSM Conference | java.sun.com/javaone | 26
  • 27. OpenAjax Hub 1.1: the steps Web browser URL: http://example.com/mashup_builder/my_mashup1 Mashup container Widget-C Widget-E 1 2 Load the Initialize and widgets used 4 Broadcast an event using connHandle.publish() create a in the mashup “Managed Hub” Hub 1.1 (Managed Hub) 7 5 Hub 1.1 Hub 1.1 8 inline provider 6 inline provider smash provider 9 smash provider Widget-A Security 3 Subscribe to a topic and register a callback function using manager connHandle.subscribe() 10 12 Invoke the callback function Hub 1.1 11 smash provider 2008 JavaOneSM Conference | java.sun.com/javaone | 27
  • 28. Hub 1.1 status Specification • First draft spec – far along • http://www.openajax.org/member/wiki/OpenAjax_Hub_1.1_Specific ation Reference implementation at SourceForge • First implementation (far along) • http://openajaxallianc.sourceforge.net Timeline for Hub 1.1 • Now: Detailed review within Interoperability Working Group • Spring 2008: Stable, complete spec • July-September 2008: InteropFest (with OpenAjax Metadata) • Fall 2008: Finalize and approve 2008 JavaOneSM Conference | java.sun.com/javaone | 28
  • 29. Agenda Introducing OpenAjax Alliance Secure Mashup Initiatives Overview OpenAjax Hub 1.1 OpenAjax Metadata for Widgets Demo Summary 2008 JavaOneSM Conference | java.sun.com/javaone | 29
  • 30. Widget innovation – no shortage 2008 JavaOneSM Conference | java.sun.com/javaone | 30
  • 31. OpenAjax Metadata – industry problems IDE interoperability problem • Countless Ajax libraries • Each library has its own approach to documenting • JavaScript APIs • UI controls • As a result, difficult to deliver visual authoring tools that integrate with the full set of Ajax libraries in the industry Mashup interoperability problem • Dozens of widget formats (Google, Yahoo, Apple, Microsoft…) • Current industry situation: • Widgets developers provide multiple versions of their widgets • To do a mashup, you usually need a programmer • As a result, difficult to deliver visual mashup tools that integrate with the full set of widgets in the industry 2008 JavaOneSM Conference | java.sun.com/javaone | 31
  • 32. OpenAjax Metadata – what it provides (IDE WG) Ajax library metadata “intermediary” standard • Standard XML for describing • JavaScript APIs • Widgets • Committee includes • Adobe, Aptana, Dojo, Eclipse, IBM, Microsoft, Sun, TIBCO, and Zend (Gadgets TF) Mashup gadgets “intermediary” standard • Standard XML for describing a mashup component • But mashup gadgets have special needs • List of topics that they produce and consume (i.e., pub/sub) • Security issues related to secure mashups 2008 JavaOneSM Conference | java.sun.com/javaone | 32
  • 33. OpenAjax Metadata sample code <widget xmlns="http://ns.openajax.org/widgets"> <properties> <property name="Addr" type="Loc" listen="true" /> </properties> <content> <!-- HTML+JavaScript go here --> </content> </widget> 2008 JavaOneSM Conference | java.sun.com/javaone | 33
  • 34. OpenAjax Metadata status Specification • First draft spec - far along • http://www.openajax.org/member/wiki/OpenAjax_Metadata_Specification Open source • Gadget transcoders • Mini mashup application Timeline for OpenAjax Metadata • Now: Finishing spec within IDE Working Group • Spring 2008: Stable, complete spec • July-September 2008: InteropFest (with OpenAjax Hub 1.1) • Fall 2008: Finalize and approve 2008 JavaOneSM Conference | java.sun.com/javaone | 34
  • 35. OpenAjax – Addressing the challenges Web browser URL: http://example.com/mashup_builder/my_mashup1 Widget-C Widget-E (trusted) Communicates in the (1) OpenAjax Hub 1.1 Company server background with one provides framework for of the company’s web loading/isolating widgetsservers (untrusted) and secure message Communicates in the management background with a Public server Message public web server passing Widget-A (4) Open source mini- between (untrusted) mashup application Communicates in the the widgets shows how to use all of background with a Public server public web server these technologies (2) OpenAjax Metadata defines an industry (3) Open source transcoders standard widget wrapper convert popular existing format proprietary gadget formats into OpenAjax Metadata 2008 JavaOneSM Conference | java.sun.com/javaone | 35
  • 36. OpenAjax Mashups in action 2008 JavaOneSM Conference | java.sun.com/javaone | 36
  • 37. Summary Mashups offer both promise, but have challenges • Security • Interoperability OpenAjax Alliance is addressing the challenges • OpenAjax Hub 1.1 • OpenAjax Metadata 2008 JavaOneSM Conference | java.sun.com/javaone | 37
  • 38. For More Information Web site: http://www.openajax.org Wiki: http://www.openajax.org/member/wiki Blog: http://www.openajax.org/blog Mail list: public@openajax.org Email: Jon Ferraiolo <jferrai@us.ibm.com> 2008 JavaOneSM Conference | java.sun.com/javaone | 38
  • 39. Jon Ferraiolo, IBM & OpenAjax Alliance TS-5030 2008 JavaOneSM Conference | java.sun.com/javaone | 39