Application Virtualization Gautam Shroff TCS Innovation Lab Delhi
Application Virtualization Gautam Shroff – TCS Innovation Lab - Delhi
Virtualization 20 February 2021
Multi-Tenancy • Usually meant for hosted Software as a Service applications • Multi-tenancy - single code base; multiple customers Ø software development economies of scale driving down costs Ø rapid and invisible upgrades 20 February 2021
Example: Multi-Tenancy using Multiple Schemas 20 February 2021
Application Virtualization: Model Driven Interpreters • Virtualize a class of applications: Ø e. g. Forms-based workflow applications Ø … but there are others – Facebook Apps are an example • MDI: – interprets model at runtime instead of generating code – does this efficiently • MDI platforms also: – allow manipulation of the model while the system is running – manage this efficiently and correctly • In addition some MDI platforms: – allow manipulation of models and immediately render – WYSIWIG – are [somewhat] meta-circular 20 February 2021
Motivation for Application Virtualization / MDI §Cloud is about Infrastructure §What about Development Costs: “No Silver Bullet” “There is no single development, in either technology or or management technique, which by itself promises even one order-of of-magnitude improvement within a decade in productivity, reliability, or simplicity. ” - Fred Brooks, 1975 However – Ø Computer hardware has progressed a lot Ø No other technology since civilization began has seen seven orders of magnitude price-performance gain in 50 years ØThe Internet happened ØCloud Computing is promising another revolution. ØIt has been 3 decades since ! 20 February 2021
Model Driven Architecture: 20 February 2021
How MDA Works: Visual Modeling Describes Application Model Meta Model Templates Class <Object. Name>: <Attributes> …. Code Generator Attributes Attribute Name Object Name Column Name PID Property. Obj Property. ID Address Property. Obj Address Owner Property. Obj Owner Application Code Class Property. Obj: PID Address Owner 20 February 2021
Lessons from our MDA experience • Technology Proofing Ø critical for redeployment to different architectures, databases, languages… • Developing into complex high-performance software architectures Ø critical for enforcing standards and uniformity required for performance However • Steep learning curve & complex environment • Poor turn-around time for changes Ø Incremental generation and testing difficult ØEnd-to-end savings was not significant Even if code is generated from model elements – one change – say a field addition, or size change can affect upto 100 lines of code, and cause regeneration of over 1000 lines across many files – all needs to be deployed, tested … MDA works best for large, complex ‘product-line’ systems Not for small light-weight applications 20 February 2021
Long Tail of Enterprise Applications Moderate number of midsize applications Small number of large, Business-critical applications Large number of small, situational applications candidates for Dev 2. 0 and public cloud 20 February 2021
Lessons from the Web 1. 0: Publishers and Readers Web 2. 0: Ø “Do it yourself” writing – blogs, wikis Ø “Do it yourself” publishing: Netvibes Sharepoint Sampa, Ning … 20 February 2021
Web 2. 0 to Dev 2. 0 • “Do it yourself” business applications: Salesforce. com Zoho Coghead d re i u by P A S q Ac • Other examples – e. g. a very large F 100 enterprise’s in-house platform ØForms driven database oriented workflows without coding or any ‘IDE’ 20 February 2021
From MDA to MDI Describes Model Repository Attributes WYSIWYG “Designer” Attribute Name Object Name Column Name PID Property. Obj Property. ID Address Property. Obj Address Owner Property. Obj Owner Instant. Apps: J 2 EE, TCS tool (early Python prototype released as open source) In-memory Model Interpreter Class Ent. Obj: attrs = [(, )] def _init_(name): classname=name lookup. MM() fill. Attrs() 20 February 2021
Models = Behavior Patterns: e. g. User-Interfaces “form” abstraction: e. g. order form Customer Page 20 February 2021
More Patterns: Modeling Validation Rules 20 February 2021
More Patterns: Modeling Computations using Map. Reduce §Recap Map. Reduce: map reduce merge (k 1, v 1) [(k 2, v 2)] - key-value pair to list of pairs on new key (k 2, [v 2]) (k 2, v 3) – new key, list of values to ‘reduced’ value (k 2, [v 3]) I a , (k 3, [v 4]) I b [(k 4, v 5)] two key, list to a list of pairs ØApplying this to visually model ‘business logic’ on relational records: 20 February 2021
TCS Instant. Apps: Enterprise-class Dev 2. 0 • R&D initiative begun in 2004 • Goal: “point and click” WYSIWIG development of business applications • Integrated platform for small-medium applications, moderate workloads / data ØProven Rapid time-to-market – significantly faster e. g. 1. 5 x => business agility ØEnterprise class: Ø complex forms (multi-table) Ø workflow (BPMN in browser, ECA rules) Ø business logic (custom code + visual…) Ø custom user interfaces “Instant Multi-Tier Applications without Tears” - ISEC 2009, Pune India “Instant. Apps: A WYSIWYG Model-driven Interpreter for Web Applications” - ICSE 2008, Vancouver, Canada (Research Demo) 20 February 2021
Inside Instant. Apps: Users Designer http Authoring Tools Customer Add Screen ‘Customer’ Specs Specifications ‘Add’ Patterns Designer Player Application Server CUST Table DB Meta - Model 20 February 2021
Instant. Apps Models 20 February 2021
Example Object. Name Table. Name Property. Obj Properties Sale. Obj Sales …. . . … Attributes Attribute Name Object Name Column Name PID Property. Obj Property. ID Address Property. Obj Address Owner Property. Obj Owner Sale. ID Sale. Obj Sale. ID PID Sale. Obj Property. ID Buyer Sale. Obj Buyer Price Sale. Obj Price Form. Name Object. Name Register Property. Obj Sell Property Sale. Obj Search Sales Sale. Obj Method Form. Details Method Name Form. Name Attribute Object Register Property PID Property. Obj Register Property Address Property. Obj Sell Property PID Sale. Obj Sell Property Price Sale. Obj Search Sales Address Property. Obj Called Form Type Sell Property PF sell. Prop LM Operation Form Type Register Property - Result Action Sell Property - Add After Add 20 February 2021
Experience using Instant. Apps: Time & Cost • Significantly accelerated development Significantly improved productivity Being used in practice Deployed in production Actual Effort Estimated Effort • Caveats – small applications (<2000 FP) P 1 P 2 P 3 P 4 20 February 2021
MDI Results in a Compressed Development Cycle Requirements Gathering and Rapid Prototyping Design and Construction and Unit Testing System Testing Integration Testing X User Acceptance Testing System Testing User Acceptance Testing 20 February 2021
Experience using Instant. Apps: Performance • Performance for moderate workloads similar to non-interpreted application using ‘same’ architecture. – many 100 s of concurrent users, millions of records, on single blade • Why? – computing overhead is not the critical bottleneck – faster CPUs, … but also perhaps some losses are made up: – less code – less memory footprint – fixed # of classes w. r. t. size of functionality – drives object re-use within JVM 20 February 2021
Multi-Tenancy with Model Driven Interpreters • Multi-tenancy comes for free – single instance supports multiple applications • Re-use by importing application models Application Y = Application X Import Application X Delta Meta-Data Repository Application Y Publish Application Y after enhancements 20 February 2021
Challenges of Software as a Service • “What about my data” – often an inhibitor to Saa. S adoption • Saa. S applications could potentially use a customer’s ‘own’ data in the same cloud : Saa. S application ‘my’ data Instant. Apps in the Cloud allows this 20 February 2021
Dev 2. 0 in the Cloud • Web based Dev 2. 0 platforms - `Saa. S’ model • Instant. Apps on Amazon EC 2 - `Paa. S’ model 20 February 2021
Cloud Computing and Hosted MDI • Dev 2. 0 platforms can potentially access customer’s ‘own’ data • Multiple Dev 2. 0 platforms, each appropriate for a particular type of application, can access same data – forms processing – transaction processing (batch) – analytics (OLAP) – Integration ‘my’ data ‘Forms’ MDI meta-data ‘Analytics’ MDI ‘Integration’ MDI (this does not happen yet) 20 February 2021
Dev 2. 0 Economics Dev 2. 0 • Essential aspects of any `cloud’ service: (i) “pay-per-use” per-user / per CPU-hr / per-FP (ii) rapid end-user provisioning instantly `provision’ a `blank’ application via multi-tenancy (iii) commoditized service functionality common application available as re-usable `templates’ 20 February 2021
Beyond Dev 2. 0 in the Cloud: “Cloud Services”? • Can outsourced services (BPO, KPO) share `cloud’ features? (i) “pay-per-use” outcome based pricing ü (ii) rapid end-user provisioning customer configurable services × (iii) commoditized service “payroll”, “accounting”, “claims” available as re-usable templates’ × • Dev 2. 0 ideas appear to have some role to play here - `watch this space’ 20 February 2021
Research Problem: Tools to build MDIs • How did we create a MDI? • Choose application: – ‘target architecture’ • Extract architecture code – templates • Define equivalent meta-model • Convert templates to interpreters • Create a custom Designer Reverse of ‘partial evaluation’ - unsolved! Q: Can this be automated? Partial Evaluation: • Given an interpreter and a program Ø Produce code specific to that program (i. e. ‘evaluate out’ the interpreter) • Given a model-driven interpreter and a model Ø Produce code that executes only that model 20 February 2021
Summary • Cost and Time are precious Ø IT has improved agility, but is IT itself agile? ØCloud Computing achieves efficiencies for IT Infrastructure, ØMDI (Dev 2. 0) could do the same for Application Development Ø maybe even for other areas • Many research problems remain 20 February 2021
TCS Research • 7 major corporate research locations in India • ~ 500 research staff, ~ 75 Ph. Ds • Areas: – Software Engineering – AI and NLP – Multimedia and Graphics – Analytics and Algorithms – Large Scale Systems – Bio & Nano Technology Please visit us – short term (and long ) saabaticals / internships are welcomed! DELHI KOLKATTA MUMBAI PUNE HYDERABAD BANGALORE CHENNAI 20 February 2021
- Slides: 32