Lightweight Languages Workshop 2002 9 November 2002 © 2002 IBM Corporation IBM Lightweight Services Implementing persistent server-side JavaScript Christopher.

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

Games, chat, and finance Toward a truly interactive web with Comet, BAM, and HMTP Emil Ong Chief Evangelist.
® © 2008 IBM Corporation IBM Software Group EGL Simplify Innovation EGL International Conference Zurich Oct EGL Rich UI – Overview and Demonstration.
Windows Workflow Foundation
January 30, 2014 Copyright Jim Farley Beyond JDBC: Java Object- Relational Mappings Jim Farley e-Commerce Program Manager GE Research and Development
AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
Tom Sugden EPCC OGSA-DAI Future Directions OGSA-DAI User's Forum GridWorld 2006, Washington DC 14 September 2006.
Three types of remote process invocation
Supporting Persistent Objects In Python Jeremy Hylton
The Open Source Developer's Kit Scott Wheeler Nortoc Inc. January 14, 2003.
Other Web Application Development Technologies. PHP.
Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright.
An Introduction of Jini Technology Presenter: Carfield Yim, Gary Lam Date: 31-Jul-2002 How can JINI Technology Boost Our Business.
Introduction to Web Services
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
SFDC Integration Basics Gerry Winning. Integrating Your Progress App with SFDC Ovid Back Office App is Fully Integrated with SFDC (about two and a half.
JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
© IBM Corporation Informix Chat with the Labs John F. Miller III Unlocking the Mysteries Behind Update Statistics STSM.
Apache Struts Technology
XML in the real world (2) SOAP. What is SOAP? ► SOAP stands for Simple Object Access Protocol ► SOAP is a communication protocol ► SOAP is for communication.
Copyright © IBM Corp., Introducing the new Web Tools JavaScript™ Features Phil Berkland IBM Software Group 9/26/2007.
© 2014 IBM Corporation Empowering the IBM ecosystem Introduction to Developing applications using node.js on Bluemix IBM Ecosystem Development Instructors.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
How to Swing a Service Bus Like You Mean It SOA with NServiceBus Jim
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
UNIT-V The MVC architecture and Struts Framework.
© 2011 IBM Corporation 11 April 2011 IDS Architecture.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Enhancing JavaScript Using Application Programming Interfaces (APIs)
Support for Debugging Automatically Parallelized Programs Robert Hood Gabriele Jost CSC/MRJ Technology Solutions NASA.
Distributed Real- Time in the RTSJ Andrew Borg. Presentation RMI – A brief introduction The RTSJ – A (very) brief introduction The DRTSJ – The 3 Levels.
A Self-Manageable Infrastructure for Supporting Web-based Simulations Yingping Huang Xiaorong Xiang Gregory Madey Computer Science & Engineering University.
(Business) Process Centric Exchanges
Conceptual Architecture of Mozilla Firefox (version ) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Client-side processing in JavaScript.... JavaScript history Motivations –lack of “dynamic content” on web pages animations etc user-customised displays.
DAT325 SQL Server 2005 (Codenamed “Yukon”): Using the Service Broker To Build Asynchronous, Queued Database Applications Roger Wolter Program Manager.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
REST By: Vishwanath Vineet.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
Workflow Service Host Persistence (Instances) Persistence (Instances) Monitoring Activity Library Receive Send... Management Endpoint Persistence Behavior.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Text INTRODUCTION TO ASP.NET. InterComm Campaign Guidelines CONFIDENTIAL Simply Server side language Simplified page development model Modular, well-factored,
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.
September 24th 2006, aKademy The Design and Implementation of KJSEmbed Richard Moore,
Jean-Philippe Baud, IT-GD, CERN November 2007
Presented by: Daniel Taylor
z/Ware 2.0 Technical Overview
JDK 1.6 change summary D. MANIKANDAN.
Replication Middleware for Cloud Based Storage Service
Client-Side Validation with Javascript
Interpreter Style Examples
MPI-Message Passing Interface
Building responsive apps and sites with HTML5 web workers
Time Gathering Systems Secure Data Collection for IBM System i Server
JavaServer Faces: The Fundamentals
Module 10: Implementing Managed Code in the Database
Student: Popa Andrei-Sebastian
Structuring of Systems using Upcalls
Foundations and Definitions
Module 10: Creating Transactional Business Processes
Presentation transcript:

Lightweight Languages Workshop November 2002 © 2002 IBM Corporation IBM Lightweight Services Implementing persistent server-side JavaScript Christopher Vincent

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 2 Agenda Scenario Goals Compromises Conclusions

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 3 Scenario: script-based components Metadata configures environment Address space per instance

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 4 Goals Robust code, minimal effort High-level, dynamic environment Patch live code, interactive debugging (REPL) Asynchronous / event-driven APIs Application types Avoid deadlock, cancel operations Transparent persistence, transactions Program state rollbacks Survive container restart / failure

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 5 Simple JavaScript example No arbitrary serialization Only checkpoint when idle Single-threaded Event-handlers provide predictable boundaries var fib1 = 0; var fib2 = 1; function nextFibonacci() { var fib3 = fib1 + fib2; fib1 = fib2; fib2 = fib3; return fib3; }

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 6 Non-transactional resources Managed access to the non-transactional world Queue operations until event-handler / transaction succeeds Script APIs wrapper message-passing var session = new InstantMessaging.Session(); session.onMessage = onMessage; session.login(im.ibm.com, userId, password); function onMessage(session, from, text) { session.send(from, You said: + text);... throw new Error(darn.); }

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 7 Container restart / failure Complete transparency impractical Consider late failures vs. explicit resume Minimize effort to restore resources var session =... session.login(im.ibm.com, userId, password); Host.onResume = onResume; function onResume() { session.login(); }

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 8 Conclusions Practical results Real-world examples in lines of JavaScript Implementing the container is hard Underlying message-passing system, resource management Custom-tailored extension APIs Applies to other languages with object serialization

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 9 More information IBM Lightweight Services Introduction to IBM Lightweight Services Extending J2EE with script-based agents Mozilla Rhino JavaScript engine ECMAScript language specification

LL2: IBM Lightweight Services 9 November 2002 | © 2002 IBM Corporation 10 Changes to environment Discard changes to built-in objects Simplifies serializer, saves space Could detect modifications Array.prototype.peek = function () { return this[this.length – 1]; }; x = [1, 2, 3]; x.peek(); var re = /foo(\d+)bar/i; re.exec(foo123bar); var match = RegExp.$1;