SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
GLASS 2.0



Dale Henrichs
  VMware, Inc.

  ESUG 2011
Edinburgh, Scotland
   August 22, 2011
GLASS 2.0
●   Overview of GLASS
●   VMware Cloud Foundry
●   tODE demo
What is GLASS?
●   A platform for deploying web-based Smalltalk
    applications in GemStone/S
       –   Develop in Squeak/Pharo, Deploy in GemStone
               ●   OmniBrowser-based development tools
               ●   Compatibility layer for the Squeak and Pharo
                    code base
               ●   Many popular projects ported to GemStone/S
Why use GLASS?
●   GemStone/S is a high performance, high
    reliability alternative when your web application
    outgrows a single vm
        –   With the “transparent persistence” and
             “transparent concurrency” features of GLASS
                ●   Add multi-vm persistence to web app without
                     changes to your source code
        –   Free for commercial use
Transparent Persistence
●   GemStone is based on same persistence
    model used in Squeak/Pharo
       –   Objects rooted in “Smalltalk” are considered
            persistent
●   GemStone uses transactions instead of “save
    image” in Squeak/Pharo
       –   commit
               ●   Changed objects in vm saved to repository
       –   abort
               ●   Entire object graph in vm updated to current view
                       –   Dropping any changes on the floor
Transparent Persistence (cont'd)
●   GemStone transaction logic is embedded in the
    web framework
       –   Abort/Commit on HTPP request boundaries
               ●   Fresh view at start, changes saved to disk before
                    user sees response
●   No additional application-level code needed
Transparent Concurrency
●   On commit, GemStone merges changes to
    object graph with latest view in repository
        –   if two vms concurrently update same object
                ●   Commit conflict thrown
●   Conflict management code embedded web
    framework
        –   On conflict HTTP request is retried
                ●   As if request had been delayed in arriving
●   No additional application-level code needed
VMware Cloud Foundry
●   Cloud Foundry is a platform for building,
    deploying, and running cloud-based apps
       –   CloudFoundry.com is a complete, hosted
            environment offered by VMware
       –   CloudFoundry.org is an open source project
Cloud Foundry and GLASS
●   We are actively integrating GemStone/S and
    Maglev into Cloud Foundry framework
●   Plans to include support for
    Seaside/Aida/Iliad/Pier
●   When finished we'll have cloud-based hosting
    service for GLASS
        –   Will make deploying to GemStone/S even easier
tODE
      the Object-centric Development
               Environment
●   A Proof of Concept for a Smalltalk IDE that runs
    in a web browser
        –   Written in Seaside
        –   Ported to Pharo and GemStone
        –   MIT license
●   A small, powerful framework that is easy to
    customize
Why tODE?
●   tODE was created to provide the Smalltalk IDE
    for deployed web-applications
       –   The traditional Smalltalk GUI is too slow when
            used across the WAN
       –   Limited access to machines running in cloud
               ●   HTTP access only in Cloud Foundry
●   Smalltalk without an IDE?
       –   No way!
tODE paradigm
●   Modeled on a web browser – tODE is an
    “Image Browser”
       –   URL is a Smalltalk expression
       –   LINKs follow object references
       –   HISTORY is a stack of object references
       –   PAGE is a set of tabbed PANES for an object
       –   PANE contains a rendered aspect of the object
Navigation Pane
History Pane
SidebarPane
Pane contents
Frame Pane
 - Evaluate Smalltalkaspect of the current object
   History by when frames/objects
   List pane, a renderer
   Select tab visitedneeded
   Drawn of to view Expressions
 - - View, Help, Inspect, Class and Method
   Back button is derived from a specification in a pragma method
   The renderer
 - Search
 - etc.
tODE Demo
Conclusion
●   Successful Proof of Concept
       –   Functional ...
       –   Simple, extensible framework
       –   Need a (web framework) neutral rendering
            language
       –   Need a bit of CSS and javascript polish
Future work
●   tODE
       –   Head towards alpha release
●   GemStone/S for Cloud Foundry
       –   Keep an eye out for further info
●   For more info
       –   http://seaside.gemstone.com/
       –   http://cloudfoundry.org/
       –   http://code.google.com/p/tode/
       –   http://gemstonesoup.wordpress.com

Contenu connexe

Tendances

GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 

Tendances (20)

Vue js 2.x
Vue js 2.xVue js 2.x
Vue js 2.x
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
 
Webkit Chromium Contribution Process
Webkit Chromium Contribution ProcessWebkit Chromium Contribution Process
Webkit Chromium Contribution Process
 
Surviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-studySurviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-study
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explained
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
 
[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry pi[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry pi
 
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
 
Solving the MariaDB and MySQL High Availability Puzzle Webinar
Solving the MariaDB and MySQL High Availability Puzzle WebinarSolving the MariaDB and MySQL High Availability Puzzle Webinar
Solving the MariaDB and MySQL High Availability Puzzle Webinar
 
WebDAV - April 15 2008
WebDAV - April 15 2008WebDAV - April 15 2008
WebDAV - April 15 2008
 
EclipseCon Europe 2011 Virgo 3.0
EclipseCon Europe 2011 Virgo 3.0EclipseCon Europe 2011 Virgo 3.0
EclipseCon Europe 2011 Virgo 3.0
 
Kubernetes best practices.odf
Kubernetes best practices.odfKubernetes best practices.odf
Kubernetes best practices.odf
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
Drupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.xDrupal in 5mins + Previewing Drupal 8.x
Drupal in 5mins + Previewing Drupal 8.x
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
 
Building Large Scale Web Apps And Platforms
Building Large Scale Web Apps And PlatformsBuilding Large Scale Web Apps And Platforms
Building Large Scale Web Apps And Platforms
 
The OpenEuropa Initiative
The OpenEuropa InitiativeThe OpenEuropa Initiative
The OpenEuropa Initiative
 
Revisit Dependency Injection in scala
Revisit Dependency Injection in scalaRevisit Dependency Injection in scala
Revisit Dependency Injection in scala
 

En vedette

Air Pressure and Weather
Air Pressure and WeatherAir Pressure and Weather
Air Pressure and Weather
zionbrighton
 
Cyclones, anticyclones and volcanoes
Cyclones, anticyclones and volcanoesCyclones, anticyclones and volcanoes
Cyclones, anticyclones and volcanoes
Kalyan Komati
 
Pg class27-midlat cyclones and anti, hurricanes
Pg class27-midlat cyclones and anti, hurricanesPg class27-midlat cyclones and anti, hurricanes
Pg class27-midlat cyclones and anti, hurricanes
SUNY Ulster
 
Cyclone and anticyclone
Cyclone and anticycloneCyclone and anticyclone
Cyclone and anticyclone
Yenyen H
 
Sea breeze and land breeze
Sea breeze and land breezeSea breeze and land breeze
Sea breeze and land breeze
jonesco1
 
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPointSea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
www.sciencepowerpoint.com
 
Land and sea breeze
Land and sea breezeLand and sea breeze
Land and sea breeze
champa1
 
Weather and clothes powerpoint
Weather and clothes powerpointWeather and clothes powerpoint
Weather and clothes powerpoint
Cláudia Tavares
 
Weather, clothes and seasons
Weather, clothes and seasonsWeather, clothes and seasons
Weather, clothes and seasons
paulaloga
 

En vedette (15)

Air Pressure and Weather
Air Pressure and WeatherAir Pressure and Weather
Air Pressure and Weather
 
Cyclones, anticyclones and volcanoes
Cyclones, anticyclones and volcanoesCyclones, anticyclones and volcanoes
Cyclones, anticyclones and volcanoes
 
seaBreeze 5.0
seaBreeze 5.0seaBreeze 5.0
seaBreeze 5.0
 
Pg class27-midlat cyclones and anti, hurricanes
Pg class27-midlat cyclones and anti, hurricanesPg class27-midlat cyclones and anti, hurricanes
Pg class27-midlat cyclones and anti, hurricanes
 
The Earth's Atmosphere: Composition and Structure
The Earth's Atmosphere: Composition and StructureThe Earth's Atmosphere: Composition and Structure
The Earth's Atmosphere: Composition and Structure
 
Cyclones and anticyclones
Cyclones and anticyclonesCyclones and anticyclones
Cyclones and anticyclones
 
Cyclone and anticyclone
Cyclone and anticycloneCyclone and anticyclone
Cyclone and anticyclone
 
Cyclones
CyclonesCyclones
Cyclones
 
Types of breezes
Types of breezesTypes of breezes
Types of breezes
 
Sea breeze and land breeze
Sea breeze and land breezeSea breeze and land breeze
Sea breeze and land breeze
 
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPointSea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
Sea Breeze and Land Breeze, Weather and Climate Unit, Earth Science PowerPoint
 
Land and sea breeze
Land and sea breezeLand and sea breeze
Land and sea breeze
 
Weather and clothes powerpoint
Weather and clothes powerpointWeather and clothes powerpoint
Weather and clothes powerpoint
 
Weather, clothes and seasons
Weather, clothes and seasonsWeather, clothes and seasons
Weather, clothes and seasons
 
weather and climate ppt for students..
weather and climate ppt for students..weather and climate ppt for students..
weather and climate ppt for students..
 

Similaire à Glass 2.0

OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar NeelamegamOpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebula Project
 
Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and Webcenter
DataNext Solutions
 

Similaire à Glass 2.0 (20)

Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento Cloud
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
 
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
 
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar NeelamegamOpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
OpenNebulaConf 2014 - Cloud Automation for OpenNebula - Kishorekumar Neelamegam
 
RIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in NuxeoRIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in Nuxeo
 
OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An Introduction
 
Conf 2018 Track 2 - Custom Web Elements with Stencil
Conf 2018 Track 2 - Custom Web Elements with StencilConf 2018 Track 2 - Custom Web Elements with Stencil
Conf 2018 Track 2 - Custom Web Elements with Stencil
 
OSGi Cloud Ecosystems
OSGi Cloud EcosystemsOSGi Cloud Ecosystems
OSGi Cloud Ecosystems
 
Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021
 
OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)OSGi Cloud Ecosystems (OSGi Users Forum Germany)
OSGi Cloud Ecosystems (OSGi Users Forum Germany)
 
Getting Started with ASP.NET vNext
Getting Started with ASP.NET vNextGetting Started with ASP.NET vNext
Getting Started with ASP.NET vNext
 
X plat dev - part ii publish
X plat dev - part ii publishX plat dev - part ii publish
X plat dev - part ii publish
 
OSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David BosschaertOSGi Cloud Ecosystems - David Bosschaert
OSGi Cloud Ecosystems - David Bosschaert
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Sam2
Sam2Sam2
Sam2
 
Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and Webcenter
 
Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - Overview
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
 

Plus de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Plus de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Glass 2.0

  • 1. GLASS 2.0 Dale Henrichs VMware, Inc. ESUG 2011 Edinburgh, Scotland August 22, 2011
  • 2. GLASS 2.0 ● Overview of GLASS ● VMware Cloud Foundry ● tODE demo
  • 3. What is GLASS? ● A platform for deploying web-based Smalltalk applications in GemStone/S – Develop in Squeak/Pharo, Deploy in GemStone ● OmniBrowser-based development tools ● Compatibility layer for the Squeak and Pharo code base ● Many popular projects ported to GemStone/S
  • 4. Why use GLASS? ● GemStone/S is a high performance, high reliability alternative when your web application outgrows a single vm – With the “transparent persistence” and “transparent concurrency” features of GLASS ● Add multi-vm persistence to web app without changes to your source code – Free for commercial use
  • 5. Transparent Persistence ● GemStone is based on same persistence model used in Squeak/Pharo – Objects rooted in “Smalltalk” are considered persistent ● GemStone uses transactions instead of “save image” in Squeak/Pharo – commit ● Changed objects in vm saved to repository – abort ● Entire object graph in vm updated to current view – Dropping any changes on the floor
  • 6. Transparent Persistence (cont'd) ● GemStone transaction logic is embedded in the web framework – Abort/Commit on HTPP request boundaries ● Fresh view at start, changes saved to disk before user sees response ● No additional application-level code needed
  • 7. Transparent Concurrency ● On commit, GemStone merges changes to object graph with latest view in repository – if two vms concurrently update same object ● Commit conflict thrown ● Conflict management code embedded web framework – On conflict HTTP request is retried ● As if request had been delayed in arriving ● No additional application-level code needed
  • 8. VMware Cloud Foundry ● Cloud Foundry is a platform for building, deploying, and running cloud-based apps – CloudFoundry.com is a complete, hosted environment offered by VMware – CloudFoundry.org is an open source project
  • 9. Cloud Foundry and GLASS ● We are actively integrating GemStone/S and Maglev into Cloud Foundry framework ● Plans to include support for Seaside/Aida/Iliad/Pier ● When finished we'll have cloud-based hosting service for GLASS – Will make deploying to GemStone/S even easier
  • 10. tODE the Object-centric Development Environment ● A Proof of Concept for a Smalltalk IDE that runs in a web browser – Written in Seaside – Ported to Pharo and GemStone – MIT license ● A small, powerful framework that is easy to customize
  • 11. Why tODE? ● tODE was created to provide the Smalltalk IDE for deployed web-applications – The traditional Smalltalk GUI is too slow when used across the WAN – Limited access to machines running in cloud ● HTTP access only in Cloud Foundry ● Smalltalk without an IDE? – No way!
  • 12. tODE paradigm ● Modeled on a web browser – tODE is an “Image Browser” – URL is a Smalltalk expression – LINKs follow object references – HISTORY is a stack of object references – PAGE is a set of tabbed PANES for an object – PANE contains a rendered aspect of the object
  • 13. Navigation Pane History Pane SidebarPane Pane contents Frame Pane - Evaluate Smalltalkaspect of the current object History by when frames/objects List pane, a renderer Select tab visitedneeded Drawn of to view Expressions - - View, Help, Inspect, Class and Method Back button is derived from a specification in a pragma method The renderer - Search - etc.
  • 15. Conclusion ● Successful Proof of Concept – Functional ... – Simple, extensible framework – Need a (web framework) neutral rendering language – Need a bit of CSS and javascript polish
  • 16. Future work ● tODE – Head towards alpha release ● GemStone/S for Cloud Foundry – Keep an eye out for further info ● For more info – http://seaside.gemstone.com/ – http://cloudfoundry.org/ – http://code.google.com/p/tode/ – http://gemstonesoup.wordpress.com