Philosophy of GIMnet



Similar documents
Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Lessons from Building Asterisk GUIs. Presented by Gaston Draque

Separation of Concerns in Component-based Robotics

Manjrasoft Market Oriented Cloud Computing Platform

UPDATE MANAGEMENT SERVICE The advantage of a smooth Software distribution

Operating System Organization. Purpose of an OS

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Virtual Computing and VMWare. Module 4

Example of Standard API

CONDIS. IT Service Management and CMDB

CLOUD COMPUTING & WINDOWS AZURE

Internet of things (IOT) applications covering industrial domain. Dev Bhattacharya

DFSgc. Distributed File System for Multipurpose Grid Applications and Cloud Computing

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

ESM s management across multi-platforms eliminates the need for various account managers.

Security Challenges & Opportunities in Software Defined Networks (SDN)

Manjrasoft Market Oriented Cloud Computing Platform

Virtualizing Exchange

"FRAMEWORKING": A COLLABORATIVE APPROACH TO CONTROL SYSTEMS DEVELOPMENT

IT 3202 Internet Working (New)

MEng, BSc Computer Science with Artificial Intelligence

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

ENZO UNIFIED SOLVES THE CHALLENGES OF OUT-OF-BAND SQL SERVER PROCESSING

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

1 Organization of Operating Systems

CPS221 Lecture: Operating System Structure; Virtual Machines

Network Programming TDC 561

Virtualization for Cloud Computing

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Cisco CCNP Optimizing Converged Cisco Networks (ONT)

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Date: December 2009 Version: 1.0. How Does Xen Work?

SOA Myth or Reality??

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

OpenStack Fundamentals Training Part 2! Compute

Overview of CS 282 & Android

Affording the Upgrade to Higher Speed & Density

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS

Operating System Components

HP Intelligent Management Center Enterprise Software Platform

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Comparison of SNMP. Versions 1, 2 and 3

API Architecture. for the Data Interoperability at OSU initiative

The Evolution of Traditional Telecoms to IP Communications

SOA Testing Challenges

State of New Jersey Shared IT Architecture

Course Project Documentation

Software Automated Testing

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Chapter 2: Remote Procedure Call (RPC)

The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang

Managing the Cloud as an Incremental Step Forward

Big Data Integration: A Buyer's Guide

Smart Solutions to your IT Challenges

MCA Standards For Closely Distributed Multicore

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Chapter 11. User Datagram Protocol (UDP)

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Tutorial on Client-Server Architecture

Analysis on Virtualization Technologies in Cloud

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Course 10978A Introduction to Azure for Developers

Software Engineering II

Efficient Monitoring of OSGi Applications

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Star System Deitel & Associates, Inc. All rights reserved.

SAN Conceptual and Design Basics

An Oracle White Paper August Oracle VM 3: Application-Driven Virtualization

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Lab Management, Device Provisioning and Test Automation Software

x64 Servers: Do you want 64 or 32 bit apps with that server?

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

SOFTWARE DEFINED NETWORKS REALITY CHECK. DENOG5, Darmstadt, 14/11/2013 Carsten Michel

Service Oriented Architecture (SOA) An Introduction

A Case Based Tool for Monitoring of Web Services Behaviors

RS MDM. Integration Guide. Riversand

Designing App and Desktop Solutions with Citrix XenDesktop 7

Easy configuration of NETCONF devices

The Fastest Way to Parallel Programming for Multicore, Clusters, Supercomputers and the Cloud.

What is Data Virtualization?

City of Dublin Education & Training Board. Programme Module for. Mobile Technologies. leading to. Level 6 FETAC. Mobile Technologies 6N0734

Citrix XenApp-7.6 Administration Training. Course

ViSION Status Update. Dan Savu Stefan Stancu. D. Savu - CERN openlab

Components of a Computer System

The Future of Networking, and the Past of Protocols

TROUBLESHOOTING CISCO DATA CENTER UNIFIED COMPUTING (DCUCT)

Microsoft Technology Centers. Tariq Hameed and Michael Gannotti 2/11/2016

The Windows Telephony Application Programming Interface Combining the Power of the Computer With the Functionality of the Telephone.

MEng, BSc Applied Computer Science

MS 10978A Introduction to Azure for Developers

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Software Defined Optical Networks with Optical OpenFlow. Jörg-Peter Elbers, Achim Autenrieth ADVAnced Technology August 2012 Rev 1.

Cisco UCS vcenter Plug-in Quick Start Guide April, 2013

Managing Variability in Software Architectures 1 Felix Bachmann*

HP Intelligent Management Center Standard Software Platform

Report No. 8 of the Transportation and Works Committee

Transcription:

Philosophy of GIMnet Software Modularity and Reusability through Service Oriented Architecture and Hardware Abstraction

Introduction GIMnet MaCI GIMnet = tcphub + GIMI Enables communication between distributed modules Designed for: 1) to enable remote communication with difficult network topologies 2) to provide minimum-effort API for the users 3) to provide basic tools for service based architecture Machine Control Interface is a library for building robot control software based on modular decomposition of the software into functional pieces. Reusable software components for robotic research Define unified hardware abstraction layer (HAL) Provide implementation guidelines for the developers

GIMnet tcphub GIMI Separate program that all Library and client side API clients connects to Handles and hides all network Clients register with name and specific implementations get internal id Service-based messaging Distributes incoming packets Public interface with service based on name/id ID (provided or accepted) Maintains distributed name Service discovery server ID based incoming Network can consist of message queues multiple hubs

Service Is an application specific, system wide defined data type, that a module provides or accepts GIMI defines the service with an ID. Service discovery reveals all services on all modules Subscribe / send to subscribers allows event based data sending

GIMnet in action The hub network allows optimization of data transfer in network GIMI supports building independent processes with clearly defined input/output messages GIMnet has been used in several robot control related applications and is proven to be well functioning library Open Source release available http://gim.tkk.fi/gimnet

MaCI MaCI is a library for writing robot control software GIMnet based communication (defines application for GIMnet) MaCI is "developer driven" in the sense, that it tries to simplify the architecture so that anyone can write control software for a robot Service based, modular, reusable and of course generic (not yet adaptive nor ubiquitous)

MaCI Structure Library consists of Drivers (MaCI independent, hw-specific), Interfaces and Modules Interface specifies the service and acts as an hardware abstraction layer Interface always has Client (service consumer), Server (provider) and data type definitions. Module is an implementation, that uses some driver and provides some (or many) interfaces

HAL and Interfaces Hardware abstraction hides the differences in hardware and provides a generic interface to it. Task of a MaCI interface is to hide the hardware, that is, from software side of view all the machines are the same Server interface provides the access and client interface consumes it. Communication between client and server is done through GIMnet (encapsulates GIMI) MaCI provides own service discovery methods, which are based on Groups, Interface types and interface instances Client applications remains unchanged if some server instance is changed!

MaCI Example - J2B2

MaCI Example - FSRSim

Client Side Interface definition enables development of generic client components (up to some point) Gimbo framework allows development of GUI components in a similar manner to MACI Most of the interfaces has a client side GUI component implemented Video

Conclusion Module decomposition frees the developer from other software development (do as you please as long as you implement the interface properly) It enables the development of generic client apps, which can be used with various platforms It naturally supports distributed computing Drawbacks: some overhead, no shared memory between modules Challenges: How far can we abstract the machines (with various tools, shapes etc) In future we hopefully see self-organizing-adaptive-worksites that uses MaCI