190 likes | 202 Vues
This comprehensive checklist outlines the requirements for designing a distributed computing system with a single-system image. It covers essential components, such as Open Grid Services Architecture (OGSA), computing resources, and the integration of different technologies and vendor tools. Explore two solution approaches for building such a system, including a focus on platform independence through Java and tool independence through Microsoft technologies. Dive into the best practices of creating a flexible and secure system that seamlessly supports multiple languages and tools while maintaining simplicity and reliability. Delve into the wish list for a Grid Services Engine and a Portable Grid-Enabled Engine architecture to enhance global namespace management and user interface customization. Learn about the extensive toolkit and language options available to support a heterogeneous environment and efficient namespace organization for public and private objects. Discover how the Namespace Manager leverages an extensible namespace to manage objects, classes, and external systems using an innovative information algebra called Quanta. Finally, explore the real-world applications of this architecture in creating user-friendly interfaces and custom binaries tailored to diverse hardware and platforms.
E N D
Architecture for a Portable Grid-enabled Engine Bruce Long Vladimir Getov School of Computer Science University of Westminster - London
An architecture for producing a distributed computing system which has a single-system-image for users, compilers, applications and services
A Checklist of Requirements for a “Single Logical Computer” Components of a Distributed Computing System Solution P Open Grid Services Architecture (OGSA) Source of Computing Resources Two solutions from which to cull ideas >>
Components of a Distributed Computing System Solution P Open Grid Services Architecture (OGSA) Source of Computing Resources A Checklist of Requirements for a “Single Logical Computer” Refer to, predict, manage, manipulate, and query. Computing Platform ? Namespace Management (Devices, Files, Objects) Abstract from: Host Platform Device Type User UI Prefs. User Interface Toolkit Languages, Development Cycle Mgmt., Other Tools Software Engineering Toolkit Two solutions from which to cull ideas >>
Solution 1: Everyone uses a single technology Platform Independence Through Java Solution 1 java.io, java.grid, java.jdbc java.jxta, java.ogsa, etc. Computing Platform Namespace Management (Devices, Files, Objects) Swing User Interface Toolkit Java Software Engineering Toolkit Inflexible: What about Perl, C++, or new, innovative languages?
Solution 2: Everyone uses a single vendor Tool Independence Through Microsoft Solution 2 .Net: SQL Server, Active Directory NTFS, DCOM, IIS, ASP.Net, etc. Computing Platform Namespace Management (Devices, Files, Objects) Windows UI User Interface Toolkit [ C#, C++, VB, Perl ] => CRL Visual Studio, Source Safe MS-Project, MS-Visio, etc. Software Engineering Toolkit Limited Choice: Wide variety of tools and languages, but only one environment.
The Best of Both Worlds • Based upon Grid concepts such as Virtual Orgs., GPA, OGSA, etc. • Global, extensible namespace for creating, predicting, and manipulating internal and “real world”, public and private objects. • Intermediate language used to support Java, .NET CRL, C++, C#, Perl, and other languages. • Binary execution that uses the local system’s processor features and User Interface facilities. • And it should all work simply, transparently, reliably, and securely. Wish List for a Grid Services Engine
Solution 3: A Portable Grid-Enabled Engine Overview Solution 2 A Shared Globalized Namespace Computing Platform Namespace Management (Devices, Files, Objects) UI created at run-time for device and user User Interface Toolkit Intermediate Language used to specialize binaries for each system and situation Software Engineering Toolkit Wide variety of tools and languages which work in heterogeneous environment.
Namespace organization (Devices, Files, Objects) A global VO provides a global public namespace Local and GlobalNamespace Management It can be used to store public knowledge (datasets, objects, class definitions, etc.) It could provide public services such as IM, DNS, or authentication Local objects can remain separate Users and VOs can create folders under their control for distributed storage for files, streams, email, etc. Grid ServicesComputing Platform P User Interface Toolkit Software Engineering Toolkit Simulation VO’s use JXTA to produce a unified namespace OGSA and other protocols are used to populate and operate a namespace. All OGSA objects, services, VOs, users, etc. can be placed in the namespace and controlled, queried, and managed through it.
Namespace Manager How is this extensible namespace managed? • Each engine keeps an object-like model of the World. • * Objects can be real objects inside the engine or* They can be models of external state systems that change over time and interact with other systems.* Objects can represent classes. • The state of any subsystem in the model can be asserted, modified, or queried using a language called Quanta. • Quanta uses expressions that evaluate to objects and classes or manipulations and queries to them on any level of abstraction. • As expressions, Quanta representations can be modified algebraically. It is an “Information Algebra.” • Quanta can represent objects symbolically. • * There can be infinite collections or objects with infinite numbers of properties.* Mathematical objects such as “Groups” or “Real Numbers” can be described. QUANTA The Real World The Namespace Manager uses algebra to create, predict, relate, and interact with internal and external objects, classes, and systems of objects.
User Interface Toolkit The Grid Services “Meta-Platform” Interfacing with Users • QuantaApplication • Model • ----------- • App. Logic • UI Req’s Custom binaryproduced for localhardware & platform LocalHardware Model LocalPlatform Model Grid ServicesComputing Platform P UI xforms Device xforms Namespace Management (Devices, Files, Objects) <UI>:<JSwingScnSet> == {#<JScns>; … for <Intel7WhileLoops>:I7WLoop:: { <CodeToProduce.<I7WLoop>>== {… P <UI>:<IEWebScnSet> == {#<WScns>; … for Hz:<longint>, ms:<longint>:: beep(%Hz, %ms)==<WinDlls.”Win.h”. “beep”.[%Hz, %ms]>; Web_Page(PageSpec:Spec) == @{<%Spec.DOMObjectList> == { … Software Engineering Toolkit PDF_Docs(PDFSpec:Spec) == @{<%Spec.PDFObjectList> == { … for Hz:<longint>, ms:<longint>:: beep(%Hz, %ms)==<NokiaCalls.Tone… Simulation Web UI? Swing on a Palm? COM? It’s all Grid. By using a mathematical model of objects, hardware, user interface requirements, and UI-types, applications can be reorganized and rebuilt on the fly for different devices, platforms and preferences.
Software Engineering Toolkit The Grid Services Platform Execution Model Software Engineering with the Grid Services Platform Direct Model Mode Binary Binary only QuantaCode Byte Code J2EE / .NET Grid Services Platform QuantaObject Pgmr. writes Quanta code Quanta subtasks are built And managed on an appropriate system as Grid Services. Grid ServicesComputing Platform P Intermediate Language Mode Namespace Management (Devices, Files, Objects) C, Java,C#, .NETFortran, Etc. QuantaCode P User Interface Toolkit P Pgmr. writes source code Compiled to Quanta as an Intermediate Lang. Immediate Mode Binaryor ByteCode Executable Grid Service is instantiated For flexibility, there are many modes of execution. By compiling to a mathematical language, or by programming in it directly, the GSP engine can automate and optimize the configuration used to run and manage applications and services via OGSA.
A Grid Services Engine Summary • Every GSE device runs an engine that offers Quanta-specified and legacy Grid services to users, authorized VO members, and other engines. • Services offered to local users are in whatever UI the device supports and the user prefers. • In running a program, a service or device may request help from other services or devices by calling and managing their services using OGSA. • Devices in a VO cooperate to host a virtual namespace naming objects, devices, files and so on on that VO system.
A Grid Services Engine Summary • Objects in the namespace can be evolving, interconnected systems such as databases or running programs as well as static files and classes. • Objects in the namespace can also be external systems such as NASA, Stars, or people. Even historical and future systems can be described. • There exists a global namespace on which individuals or VOs can create account. Personal and VO objects, as well as public data and services such as IM, DNS and Authentication, can run on it. • Tools for collaboration in VOs can be created, which will provide a democratic means of managing services running in the public namespace.
Library Documents Local System Documents Host Environment Documents Platform Engine Grid/Web Server Platform Adaptor Host System Host User Interface Engine Architecture Generic Platform Engine
Engine Implementation • Class infon (Storing the Namespace) • Contains relationship information and other infons • Class agent (Processing information) • An “agenda” stores tasks to be done • “World” is the top-level infon • On loading World, tasks are placed on the agenda • Input / Output • Autonames: Names that connect to system or library functions.
Cooperation among Engines • Level 1 Cooperation • Engines call each other for pre-defined tasks • Level 2 Cooperation • Engines share a namespace and agenda • Level 3 Cooperation • Engines share goals
Implementation Status • Old version of engine had most logical functionality. • New Version is in progress • Does not do all logic • Should scale much better • Processes Streaming Information • Cooperation system not yet implemented
Questions? • Bruce Long: bruce@infomage.com • Vladimir Getov: V.S.Getov@westminster.ac.uk