Geoffrey Fox Community Grids Laboratory Indiana University

Similar documents
XML Web Services Basics

Data Access and Analysis with Distributed, Federated Data Servers in climateprediction.net

Service-Oriented Architecture

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

Service Oriented Architectures Visions Concepts Reality

On the Potential of Web Services in Network Management

Distributed systems. Distributed Systems Architectures

Using JBI for Service-Oriented Integration (SOI)

The Gateway Computational Web Portal: Developing Web Services for High Performance Computing

An Introduction to the Grid

Sistemi ICT per il Business Networking

Research and Design Application Platform of Service Grid Based on WSRF

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

Introduction to Web Services & SOA

EarthCube and Cyberinfrastructure for the Earth Sciences: Lessons and Perspective from OpenTopography

RESTful Web service composition with BPEL for REST

Introduction to Grid Technology

Grid Computing. MCSN - N. Tonellotto - Distributed Enabling Platforms

(9A05803) WEB SERVICES (ELECTIVE - III)

Introduction to Grid Computing

Implementation Method of OGC Web Map Service Based on Web Service. Anthony Wenjue Jia *,Yumin Chen *,Jianya Gong * *Wuhan University

Distribution and web services

Introduction to Web Services & SOA

Web Services. Chirag Mehta

DS 2009: middleware. David Evans

Declarative Internet-scale Computing CoreGRID WP3 - Barcelona

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

We manage the technology that lets you manage your business.

1.264 Lecture 16. Legacy Middleware

CPS122 Lecture: Course Intro; Introduction to Object-Orientation

Cyberinfrastructure Framework for 21st Century Science & Engineering (CIF21)

Scalable Hybrid Search on Distributed Databases

The Knowledge Enterprise & Digital Libraries. Manuel Jaffrin EMEA Senior Architect Education & Research Sun Microsystems

Implementing the Army Net Centric Data Strategy in a Service Oriented Environment

SOA Architect. Certification

Comprehensive Guide to Evaluating Event Stream Processing Engines

Introduction to GT3. Introduction to GT3. What is a Grid? A Story of Evolution. The Globus Project

WhitePaper. Accelerating Web Services Integration With IONA XMLBUS & Altova xmlspy 2002 Altova GmbH and IONA Technologies. markup your mind!

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

How EDA extends SOA and why it is important

Leverage SOA for increased business flexibility What, why, how, and when

DataONE: Open Persistent Access to Earth Observational Data

CAS 703 Software Design

<Insert Picture Here> Enterprise Data Management using Grid Technology

UCSD Extension. Fundamentals of Web Services. Instructor: John Pantone. 2007, Objectech Corporation. All rights reserved

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

A short introduction to Web Services

Building blocks: Connectors: View concern stakeholder (1..*):

An Intro to Service Oriented Architecture

A Marriage of Web Services and Reflective Middleware to Solve the Problem of Mobile Client Interoperability

Europeana Core Service Platform

White Paper: VANTIQ Digital Twin Architecture

for Sensor Overlay Network

Linking ITSM and SOA a synergetic fusion

Research on 3G Terminal-Based Agricultural Information Service

ACCI Recommendations on Long Term Cyberinfrastructure Issues: Building Future Development

Introduction. Software Trends. Topics for Discussion. Grid Technology. GridForce:

XBS Application Development Platform

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Grid Programming: Concepts and Challenges. Michael Rokitka CSE510B 10/2007

CmpE 596: Service-Oriented Computing

Electronic Payment Systems (1) E-cash

Software MEIC. (Lesson 20)

Managing Learning Objects in Large Scale Courseware Authoring Studio 1

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Distributed Systems Principles and Paradigms. Chapter 01: Introduction

Distributed Systems Principles and Paradigms

Distributed Middleware. Distributed Objects

The Social Grid. Leveraging the Power of the Web and Focusing on Development Simplicity

Next-Generation SOA Infrastructure. An Oracle White Paper May 2007

Introduction. Distributed Systems IT332

Symmetric Key Services Markup Language Use Cases

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware

Today: Distributed Objects. Distributed Objects

Chapter 8 Web Services Objectives

Quality - The Key to Successful SOA. Charitha Kankanamge WSO2 February 2011

Connecting ESRI to Anything: EAI Solutions

Java Web Service Essentials (TT7300) Day(s): 3. Course Code: GK4232. Overview

ICENI: An Open Grid Service Architecture Implemented with Jini Nathalie Furmento, William Lee, Anthony Mayer, Steven Newhouse, and John Darlington

Model Driven Architecture

About Issues in Building the National Strategy for Cybersecurity in Vietnam

Realizing the Army Net-Centric Data Strategy (ANCDS) in a Service Oriented Architecture (SOA)

MONitoring Agents using a Large Integrated Services Architecture. Iosif Legrand California Institute of Technology

CptS 464/564 Lecture 18

Distributed Systems. The main method of distributed object communication is with remote method invocation

Network Based Hard/Soft Information Fusion Network Architecture/SOA J. Rimland

Critical Resilient Interdependent Infrastructure Systems and Processes

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

CA464 Distributed Programming

Lesson 3 SOAP message structure

Interoperability Challenges

Oracle 10g and IPv6 IPv6 Summit 11 December 2003

Knowledge Discovery Services and Tools on Grids

Chapter 4:- Introduction to Grid and its Evolution. Prepared By:- NITIN PANDYA Assistant Professor SVBIT.

Model Driven Development of Component Centric Applications

Unified Incident Command and Decision Support (UICDS)

Draft Requirements Document for the Development of the ICE2 Specification

Transcription:

s of s of Simple Geoffrey Fox Community s Laboratory Indiana University gcf@indiana.edu s Here we propose a way of describing systems built from Service oriented s in a way that allows one to build new s by composing and adapting existing collections (libraries) of s. We also suggest some best practices in deciding how to architect services and package systems. We have of course discussed s extensively here in previous articles and we adopt the view that they represent the system formed by the distributed collections of electronic capabilities that are managed and coordinated to support some sort of enterprise (virtual organization). Sometimes one reserves to describe just the technology used to build these electronic communities or organizations. One thinks of technology as the CyberInfrastructure (NSF) or e-infrastructure (European Union) that supports e-science, e-business or in fact e-moreorlessanyenterprise. There is no firm consensus as to the best approach but we will adopt the popular architecture based on Web services. There is a vigorous debate in the community as to the right way to do this and if conventional Web services need enhancement to cope with the large scale secure managed distributed services needed in a. In particular there is lot of debate on the appropriate ways to represent state and how much to standardize in this area. WSRF (Web Service Resource Framework http://www.globus.org/wsrf/) and WS-GAF (Web Service application Framework http://www.neresc.ac.uk/ws-gaf/) are two important activities whose development and interaction will have important implications for the detailed structure of services. However here we discuss aspects independent of these issues namely what is the right size for a service and how should one package services and s together. Often one considers s as providing seamless access to a set of resources; here we adopt this view with however an architecture with many small s. This reflects the many different types of overlapping communities and resource collections that naturally form individual s. Each individual can have a seamless elegant environment in fact this could be a criterion for defining s but a composite would amalgamate multiple such subs and exhibit a resultant heterogeneous environment. In other words, we do not expect there to be a few s produced but very many that can get composed, divided and overlapped together to support dynamic communities and requirements. The service oriented architecture SOA used by s is subtly different from previous distributed systems built with COM CORBA and Java with new ideas to enhance especially interoperability and scalability. Key features of (Web) services in today s s include:

1) Architectures that choose wherever possible message-based and not method or RPC based linkage of capabilities. This produces lightweight loosely-coupled services that can be distributed and replicated to achieve needed performance and functionality. 2) Interfaces defined with XML based SOAP and WSDL technologies that support a wide set of implementations trading off performance, ubiquity and functionality. The first feature of loose message based coupling is certainly not very precise. The traditional distributed object model produces components that exchange messages typically with an RPC (Remote Procedure Call) or equivalently RMI (Remote Method Invocation in Java). These are coupled messages corresponding to the distributed version of a traditional method call and its return. Loose coupling for services corresponds to a messaging strategy where individual message are not directly coupled in pairs but response messages are generated if needed asynchronously from the original communication. The second requirement of services XML based specifications of the service interfaces and their associated messages is important for interoperability but less distinctive in its architectural implications; it roughly corresponds to a different specification language from the IDL (CORBA) or Java used in RMI. Consider any (software) problem you like and imagine how it would look in a traditional approach of a decade or so ago. One would get a giant glob of software in some language like C++ or perhaps even Fortran. This would be divided into methods or subroutines and we would be browbeaten to build it in modular fashions using libraries and well defined interfaces. Us people from the past would have given up use of the GOTO in Fortran and adopted better practice for specifying control structures. As technologies developed we added new languages like Java and better software engineering processes where the latter were adopted more broadly in industry than academia. As implied above, distributed object technology supported the implementation of this paradigm across multiple computers with the method or procedure calls implemented as paired messages. However most software systems still consisted of large globs with each glob having multiple functionalities. One can find lots of very useful and important examples of this for Java at the Apache site (http://www.apache.org). One can convert such code into services by specifying each of interfaces in XML and providing a Web Service wrapper. This activity is important for jump starting our collection of services but I would view it as an interim step. For example looking at the many different Apache projects, one will find many related but different implementations of common subservices like security and user profile. Building a system combining several projects would often require an integrated approach to common services like security. This would be relatively easy if the implementation of each subservice like security was a separate service with well defined message-based interfaces. However with traditional approach, the typical subservice can have an external message-based interface but unfortunately in addition many internal method linkages to other parts of the software glob. Thus subservices like security cannot be extracted from the glob and it is very hard to compose such traditional software systems even if they run excellently with service interfaces. The above rambling discussion allows us to identify a strategy for defining services. Start by examining the different capabilities of one s systems. are distributed components that have distinct functionality especially functionality that is usefully

shared among different uses. must be able to achieve acceptable performance when implemented with message based interfaces and distributed platforms. In the Methods Functional s CPUs Clusters Compute Resource s MPPs Databases Sensor Federated Databases Sensor Nets Data Resource s Overlay and Compose s of s Fig. 1: Composing Functionality and Resources in the of s January February 2004 issue, we discussed the inevitable difference in latency between message and method based interactions; messages could experience 100 s of milliseconds in network latency while this is reduced to a millisecond or so for communication between nearby services. One should build services that are as small as possible given the performance implications from the decomposition. are then the unit to which traditional programming models and languages apply. We will not discuss this aspect but rather take services as the atomic unit whose management and packaging into s need to be discussed. Packaging and Resources into s In this article s represented a packaging and coupling approach that generalizes and distributes that familiar from the traditional software hierarchy: lines of code methods (subroutines) objects (programs) packages (libraries). As shown in fig. 1, s can be considered in this fashion with the basic unit of distribution being a service or a resource. However a given is not the last word but rather can itself be the building block in larger s. Thus we propose to build systems as s of s with the smallest s being just single services or resources. Note that we view a cluster as a special resource shown in fig. 1. We have chosen to separately specify s that correspond to resources (made up of data repositories, sensors and CPUs) as well as those corresponding to functionalities (software services). However this is a little confusing as every resource is represented in the by a service. Thus we could simplify the above picture and just talk about services. Note some unification of well known concepts; an individual service could correspond to a single database (using the OGSA-DAI technology described in the July/August 2003 column). A federated database then corresponds to a Database. Again individual CPU could have a Service interface and then a cluster corresponds to a cluster of CPU s.

Campus or Enterprise Administrative Learning Management or LMS Digital Library Education Inservice Teachers Preservice Teachers School of Education Teacher Educator s Science s Bioinformatics Earth Science. Informal Education (Museum) Typical Science Service such as Research Database or simulation Transformed by Filter to form suitable for education Publisher Student/Parent Community Fig. 2: Science Education as a of s Another example can be taken from education and arises when you try to take science s and use them in schools and universities. As shown in figure 2, education involves many separate communities and capabilities that can be expected to form independent electronic (virtual) organizations supported by their own. An Education is formed as a of s by linking and adapting services in the component s. Repositories Federated Databases Sensors Streaming Data Field Trip Data Database Database Research SERVO Education Data Filter? Research Simulations Discovery GIS Customization From Research to Education Analysis and Education Visualization Portal Computer Fig. 3: Geoscience Research and Education s Farm Figures 2 and 3 illustrate the key idea of transformations or filters used to adapt services

in old component to the Education. This could take research simulation or database services and simplify them for use in education. The resultant Education will consist of three types of services. Firstly those that are unique to education such as educational meta-content (lesson plans and objectives), online knowledge bases, grading and homework services, as well as federal and state standards; these could be delivered by the learning management and digital library s. Figure 3 shows the details of a Science for Earthquake science (http://www.servogrid.org) linked in this fashion with other s to form a Geoscience Education. We show field data being gathered by students as part of the category of education specific services. Secondly there are services like collaboration that are essentially the same as those developed for other s; thirdly there are the transformed resources that were developed for research but have been transformed to directly support teaching & learning. Thus we propose that one first build lean and mean services as discussed in the previous section. Then we package these into atomic (basic) s covering core functionalities and services; Geoscience, digital library and learning management systems are atomic s discussed above. Later we will describe other such basic s including GIS (Geographical Information Systems), Flood or electrical power simulation. Fig. 3 shows the Geoscience using a GIS as a component. After defining the basic s, most operational s will be built by linking component s together. In many Flood CI Flood and Filters Electricity CI Gas CI Gas and Filters Collaboration Sensor Portals GIS Visualization Compute Registry Security Data Access/Storage Core Notification Workflow Physical Network Metadata Messaging Fig. 4: Critical Infrastructure (CI) s built in composite fashion cases the component s need customization; this is achieved by adding services to filter or transform the services of the component s. This gives our final packaging as s of s. As a further example of a of s, Fig. 4 illustrates how one can build s to support the strategic or critical infrastructure of the nation. The Department of Homeland Security has identified these infrastructures that include Agriculture and Food, Water, Health, Industrial and Defense Base, Telecommunications, Energy, Transportation, Banking and Finance, Chemical Industry and Hazardous Materials, Postal and Shipping.

The critical atomic s in this case include those for sensors, GIS, visualization, computing and collaboration. We also need of course the core shown at the bottom of the figure with services like security, notification and meta-data. These atomic s can be re-used as shown in figure 4 in all critical infrastructure s and illustrate the important interoperability principles with which s are built. These CI(Critical Infrastructure) s are in turn customized, composed and overlaid with other s (such as weather, census data) for different CI communities. This way one generates s aimed at Public Health, Emergency Response (Command and Control) or Crisis s, Infrastructure Planning, Education (schools) and Training (of managers and first responders). Clearly the of s concept can be applied recursively and dynamically. Conclusions We have presented a model of building systems hierarchically with traditional software engineering describing the structure of individual services. are aggregated into atomic s that perform core functionalities. Composite s are built recursively from both atomic and other Composite s. This is similar to traditional software models with components and libraries. The use of transformation services in this coupling is an interesting feature distinguishing this packaging from that familiar from libraries. Although there is a lot of research on the workflow technology supporting the composition of services (http://www.extreme.indiana.edu/groc/ggf10-ww/index.html), little consideration as been given to capabilities seen in modern IDEs (Integrated Development Environments) for traditional software models and supporting them for the higher level of integration seen in s of s. In fact it is hard to support my earlier suggestion to make services as small as possible given the poor support for managing them. We expect the ideas described here to receive increasing attention in the future with the growing importance of software engineering and its extension to services.