Resource-Oriented Computing® and Netkernel® 5
Total Page:16
File Type:pdf, Size:1020Kb
1060 Research Limited - NetKernel and Resource-Oriented Computing 1060 Research Limited Collection of Articles Resource-Oriented Computing® and NetKernel® 5 v 1.1.1 1060 Research Limited - NetKernel and Resource-Oriented Computing 1060, NetKernel, Resource Oriented Computing, ROC are respectively registered trademark and trademarks of 1060 Research Limited 2001-2013 © 1060 Research Limited 1060 Research Limited - NetKernel and Resource-Oriented Computing Simplicity is the ultimate sophistication. Leonardo da Vinci ost software today is very much like an M Egyptian pyramid with millions of bricks piled on top of each other, with no struc- tural integrity, but just done by brute force and thousands of slaves. Dr. Alan Kay (father of OO programming) his software transformation, whatever it is, is coming. It must come; because we sim- T ply cannot keep piling complexity upon complexity. We need some new organizing principle that revamps the very foundations of the way we think about software and opens up vistas that will take us into the 22nd century. Robert Cecil Martin, aka “Uncle Bob” n order to handle large systems over time, there needs to be a high level description of I information...a language which allows the uniform representation of information. Algo- rithms is one type of information that has to do with computations, but there are other types. ...Computations need not be arranged in programs; they must be information, standing on their own, allowing the user to mix them at will, just like with any other type of informa- tion. Terry Winograd 1060 Research Limited - NetKernel and Resource-Oriented Computing Table of Contents A Brief History of Netkernel 4 docs.netkernel.org NetKernel Introduction 7 Randy Kahle at InfoQ Decoupling REST URLs from Code Using NetKernel Grammars 18 Randy Kahle at InfoQ A RESTful ESB implemented using NetKernel 25 Jeremy Deane at InfoQ Resource-Oriented Analysis and Design Peter Rodgers, PhD Part 1 36 NetKernel News, Volume 3, Issue 34 Part 2 43 Netkernel News, Volume 3, Issue 36 Part 3 56 NetKernel News, Volume 3, Issue 36 Part 4 63 Netkernel News, Volume 3, Issue 37 Part 5 81 NetKernel News, Volume 3, Issue 38 Part 6 94 NetKernel News, Volume 3, Issue 39 Part 7 102 NetKernel News, Volume 3, Issue 40 Part 8 114 NetKernel News, Volume 3, Issue 41 Part 9 119 NetKernel News, Volume 3, Issue 42 Resource-Oriented and Programming Languages Peter Rodgers, PhD 1 – Introduction 125 NetKernel News, Volume 2, Issue 4 2 – Imports and Extrinsic Functions 131 NetKernel News, Volume 2, Issue 5 1060 Research Limited - NetKernel and Resource-Oriented Computing 3 – Arguments 138 NetKernel News, Volume 2, Issue 7 4 – What is Code? What is a Function? 148 NetKernel News, Volume 2 , Issue 8 5 – Functions, Sets and RoC 158 NetKernel News, Volume 2 , Issue 9 6 – ROC: State of the Union 165 NetKernel News, Volume 2 , Issue 10 ROCing the Cloud 174 NetKernel News, Volume 2 , Issue 37 Peter Rodgers, PhD ROC and data structures 186 NetKernel News, Volume 3, Issue 13 Peter Rodgers, PhD On Metadata 199 NetKernel News, Volume 2, Issue 33 Peter Rodgers, PhD On State and Consistency 219 NetKernel News, Volume 2, Issue 1 Peter Rodgers, PhD DPML – Declarative Markup Language 224 Source: docs.netkernel.org DPML – A very unusual language 225 NetKernel News, Volume 3, Issue 26 Peter Rodgers, PhD nCoDE - Compositional Development Environment with a Language Runtime 230 docs.netkernel.org Separating Architecture from Code 232 Tony Butterfield, Durable Scope Caching: How and why it works 235 Tony Butterfield, Durable Scope Visualizer – Time Machine Debugging 238 Tony Butterfield, Durable Scope Ending the Absurdity 243 Tony Butterfield, Durable Scope ROC Concept Maps 246 Tony Butterfield, Durable Scope The future is coming on 252 Tony Butterfield, Durable Scope ROC: Step away from the Turing tape 255 NetKernel News, Volume 2, Issue 1 Peter Rodgers, PhD 1060 Research Limited - NetKernel and Resource-Oriented Computing How do you prove the value of ROC? 259 NetKernel News, Volume 1, Issue 23 Peter Rodgers, PhD On Empiricism NetKernel News, Volume 4, Issue 18, 19, 20 262 Peter Rodgers, PhD NetKernel Newsletter Archive • http://wiki.netkernel.org/wink/wiki/NetKernel/News/index The NetKernel Newsletter is published weekly and contains news of product updates as well as a continuing series of in-depth articles on NetKernel and Resource Oriented Computing. The latest copy is always available at the following link: • http://wiki.netkernel.org/wink/wiki/NetKernel/News/latest 1 1060 Research Limited - NetKernel and Resource-Oriented Computing Video Library (YouTube) Comprehensive Training Videos available inside the training portal. Registration required. • Download and Installation Production Package Deployment • First Module • Part 1 • Java Module • Part 2 • Visualizer • Part 3 • Part 4 NetKernel ROC Resolution • One Endpoint nCoDE • Two Endpoints • Part 1 • Import • Part 2 • Resolution Order • Part 3 • SubRequests • Superstack Space Explorer II • Mapping / Aliasing • Part 1 • Mapper / Superstack • Part 2 • Mapping / Deep Superstack • Part 3 • Limiter • Limiter / Superstack Golden Thread Discussion • Part 1 • Private • Part 2 • Private Import NetKernel Grammar • Part 1 • Part 2 2 1060 Research Limited - NetKernel and Resource-Oriented Computing NetKernel 5 The World's 1st Uniform Resource Engine ROC Microkernel Heatmap NK Protocol / Cloud Infrastructure Visualizer Time-machine debugger Resource Resolution and Classloader Trade Tools L2 Cache Load Balancer Endpoint Statistical Profiling Encryption Modules Real-time System Status Resports and Charts Apposite Package Manager xUnit Test Framework Mulit-mode deadlock detector Role-based System Administration Security DPML Declarative Request Language Historical Log Analyzer Multilevel Log Management nCoDE Visual Composition Environment eMail client / server XMPP Transport SOAP Transport REST Web Services client / server Relational Database Too Set SSH deamon Declarative Architectural Suite oAuth client / server High-performance Asynchronous HTTP client / server HTTP Virtual Hosting Manager State Machine Runtime Groovy, Ruby, Python, Java, JavaScript, BeanShell www.1060research.com 3 1060 Research Limited - NetKernel and Resource-Oriented Computing Books on Resource-Oriented Computing and NetKernel • Resource-Oriented Computing with NetKernel . Tom Geudens O'Reilly, 2012. • Resource-Oriented Architecture for Webs of Data. Brian Sletten Morgan and Claypool Publishers, 2013 • Beautiful Architecture, Leading Thinkers Reveal the Hidden Beauty in Software Design. Diomidis Spinellis , Georgios Gousios O'Reilly, 2009 (chapter 5) Resource-Oriented Architectures: Being “In the Web” 4 1060 Research Limited - NetKernel and Resource-Oriented Computing MindMap of NetKernel Universe As part of our ongoing efforts to at least provide crampons if not materially reduce the learn- ing curve required to reach the epiphany of Mt NetKernel I want to present our latest efforts with a visual representation of the structure of knowledge within the NetKernel documenta- tion. Click here for larger image It is a mindmap; a visual map of the structure of the documentation contained in the core books. It is dynamically generated and clicking on the nodes takes you straight to the actual page within the documentation. Mindmaps are incredibly useful to see the lie of the land or the outline of available knowledge. However the real benefit I see is that various data visualisations can be overlayed on this map which will help in navigating. I have heard from many people that it's easy to get lost and end up going round in circles trying to find mean- ing. (Of course some of that indicates that the content needs refining and that is happening too) 5 1060 Research Limited - NetKernel and Resource-Oriented Computing The simplest visualisation is what a web browser does to highlight visited links. So in the background the documentation system locally captures analytics (hit counts and last viewed time.) This quickly allows somebody using the documentation to learn which paths have been traversed and what still remains unexplored. This tool will also contain a number of other visualisations such as pages viewed over specific time periods or pages viewed most frequently. 6 1060 Research Limited - NetKernel and Resource-Oriented Computing A Brief History of NetKernel NetKernel is different. To give you a picture of how it is different here's a short story... A computer program defines functions, invokes functions, receives values, assigns those values to variables (state) and invokes more functions with that state. There are dozens of programming languages, you choose your language, you write your program, you run your program. That's how it is, that's how it has always been. Step forward to the early 1990's. The World Wide Web was developed as an efficient dis- tributed information system. To begin with it was static, serving files, but soon it became dy- namic - when your browser requested a URL the Web server would dynamically compute the state and return it to you. The Web is a software system that has completely decoupled the state from the imple- menting functions. Nobody cares if you write your web application in PHP or Java or ... etc etc etc. The only thing that matters is the name of the resource (its URL identifier) and the state of the resource when you request it. So what? So what? So, the Web can be instantly updated, the Web scales, the Web absorbs change, the Web is malleable and flexible. These are properties that every well run business would like to share. So in the early 2000's people started to think this was "a good thing". People started to talk about "Web-Services". There were some absolutely abominable technologies that got la- belled with the "Web" label. Fortunately many of them died and over time people have started to realize that these weren't very web-like at all. Today there is growing interest in REST. REST is just another name for "the properties of the Web". End of story. Or is it... So we can expose dynamic business information and business processes (business state) using the Web.