1 / 66

The Web Computer: Creating Web Applications Innovatively

Dive into a new approach of web application development with the concept of the Web Computer, abstracting network intricacies for a streamlined user experience. Explore web memory synchronization, code space actions, and web I/O devices for efficient app creation. Discover how the Web Computer OS simplifies development processes and enhances user interaction with applications. Embrace the future of web development with this revolutionary framework!

danette
Download Presentation

The Web Computer: Creating Web Applications Innovatively

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ERDF project #1.1.1.2/16/I/001 Application#1.1.1.2/VIAA/1/16/214 The Web Computer and Its Operating System:a New Approach For Creating Web ApplicationsSergejs KozlovičsInstitute of Mathematics and Computer Science, University of Latvia (Riga, Latvia)

  2. What Babbage, Turing, and von Neumannhad in common?

  3. The same mindset! born in 1903 born in 1912 born in 1791

  4. The 3-Singles Assumption • a singlecomputer • operatedbya singleuser • executing one programat a time

  5. The 3-Singles Assumption • a singlecomputer • operatedbya singleuser • executing one programat a time

  6. And Then the Web Comes... Vannevar Bush, “As we may think”, 1945

  7. And Then the Web Comes... Server Server vs.

  8. And Then the Web Comes... Server vs.

  9. The Modern OS • can handle concurrent programs • can handle multiple users

  10. The Modern OS • can handle concurrent programs • can handle multiple users Where is the network?

  11. The Modern OS • can handle concurrent programs • can handle multiple users Where is the network? We still have to think about it!

  12. Wewant the 3-singles assumption when developing web applications Think classicaly. Deploy webically.

  13. The Web Computer

  14. The Web Computer • anabstraction* • factors out the network • provides the illusionof a single target computer

  15. TheWeb Computer webmemory webprocessors web I/O devices

  16. web I/O devices (server-side, client-side, cloud)

  17. data code Harvard-style memory!

  18. WebMemory insync betweenall webprocs • a graph (OOP-like)memory, likein Java (MOF/ECore-likemodel) • synchronizedbetweenallwebprocessors(server-sideandclient-side)

  19. The Code Space existing technologies forcode

  20. The Code Space Consists of actions: name →entry point

  21. The Code Space Consists of actions: name →entry point uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject

  22. The Code Space uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject • the name can be used as a pointer to code(can be stored in web memory) • the name is implementation-agnostic (the caller is not aware of where the code will be executed)

  23. The Code Space uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject • the action code can be: • private (requiring an authenticated session) vs. public • non-static (requiring web memory) or static

  24. The Code Space uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject • calling conventions: • an object (pointer) in web memory → result in web memory (or void) • JSON → JSON (non-static actions can access web memory)

  25. The Code Space uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject web calls of this action can be invoked at any side; each actions must be validated for not harming the server

  26. The Code Space uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject the name of the instruction set(e.g., staticjava, lua, clientjs, shell_script, python3, etc.)

  27. The Code Space Analogy with classical instruction sets: x86 IA-64 Java bytecode ... uploadFile(JSON)=staticjava:org.webappos. webcalls.FSActions_webcalls #uploadFileToCurrentProject the name of the instruction set(e.g., staticjava, lua, clientjs, shell_script, python3, etc.)

  28. WebProcessors Each supports 1 or more instruction sets Hierarchy: JS JS 6 Any-side JS 6 Client-side JS 6

  29. WebProcessors remote (specific OS/environment, e.g. Solaris) mainly JavaScript; possible WebAssembly, Flash, Java applets... PHP, Java, Python...

  30. Web I/O Devices Standardized via APIs: • File Systems • Server-side file system (the cloud for storing user home directories) • Remote cloud drives (iCloud drive, OneDrive,Google drive..) • Desktop • Registry (Tree-like database)

  31. Web I/O Devices Non-standardized devices can be accessed via actions implemented using native code (in actions): • Browser-side printer (accessible from client-side JS) • Specific server-side or remote database (accessible from server-side Java/C++/Python code) • Specific server-side device (e.g., an NVIDIA card accessible via CUDA) • ...

  32. The Web Computer: Summary • web memory • code space (actions) • web I/O devices Developers do not access them directly. Accessible via APIs. Who provides the APIs?

  33. TheWeb Computer OS

  34. webAppOS/formal • definesAPIs • forwebappdevelopers • foraccessingwebmemory • foraccessingweb I/O devicesandservices • forlaunchingcode • forweb I/O devicedrivers • forotherinternalcomponents • defineshow to deploywebapplicationsandwebservices • defineshowappscommunicatewiththeenduser • managesauthenticationandaccess to third-partyscopes(e.g., Google services)

  35. webAppOS Applications and Services

  36. webAppOS applications A webAppOSapplication consists of: • a set of web calls actions (from the code space)

  37. webAppOS applications A webAppOSapplication consists of: • a set of web calls actions (from the code space) can be factored out into libraries (~DLLs/shared libraries)

  38. webAppOS applications A webAppOS application consists of: • a set of web calls actions (from the code space) • artefacts for delivering a web app to the end user

  39. webAppOS applications A webAppOSapplication consists of: • a set of web calls actions (from the code space) • artefacts for delivering a web app to the end user GUI, console, and their variations

  40. Delivering Applications Classical applications webAppOS applications html/css/js (GUI) PHP (GUI) javaservlet (GUI or console) web sockets (console) .war (GUI or console) ... differentwebAppOS adapters • native GUI executable • native console executable • Java bytecode(GUI or console) • shell script (console) • ...

  41. webAppOS services A webAppOSservice is a module that provides useful functionality to applications but is invisible to endusers.

  42. Services Types • RESTful services: • via javaservlet • via PHP • via HTML • via .war • non-HTTP (e.g., mail) service • via web sockets • ... differentwebAppOS adapters

  43. Implementation

  44. To be able to drive a car,you don’t need to know how the engine is built

  45. Primary Languages • Server-side: Java → other languages • no stack overflow problems • no char* overflow problems • multiplatform • Client-side: JavaScript → client-side technologies + web calls are possible from any side

  46. Web Socket Bus

  47. Implementing Web Memory at the Server Side • Original repository AR • encoding resembles Kolmogorov complexity • encoding suitable for direct synchronization via the network • ImplementedviaOS-managed memory-mapped files using advanced hash tables (10,000+ memory slots persingle server) • Users can re-connectto the same web memory slot

More Related