r11 - 11 Nov 2003 - 10:21:52 - TonyLindeYou are here: TWiki >  Main Web  >  TonyLinde > TonyAgArch
Note: this document now deprecated in favour of three others, starting with ArchVision?

AstroGrid Architecture

This doc will contain notes of my own about the AstroGrid Architecture, hopefully helping Keith pull together a formal architecture document.

I have already finished some notes on registry structure. This one will start at the other end - a domain model and work downwards.

Periodically, I will attach a zipped up version of the Together model I'm using to generate the pics: model.zip

Vision

A few words about my vision of what the VO is and how it will work. I've often likened the VO to the web. No-one owns it, it doesn't really exist as a separate entity, but it works. It works because there are standards such as http and HTML which everyone more or less adheres to. The VO ought to be the same: we will have standards about how components interoperate, what must happen for an entity to be recognised as a player in the VO etc. But beyond that, everyone must be free to come up with their own implementations. In this way, the VO can expand and evolve, hopefully as quickly and as effectively as the web.

To enable this vision, though, requires an understanding of what the VO is, what it is or will be or can be made up of and where we need standards stating how it all fits together: ie, an architecture. Hopefully, this document and the official AstroGrid one which derives from this will be the first steps in the creation of that architecture.

Domain model

AG started with a domain model (see rbAgDomain.gif) but this picture ended up focussing on the domain of astronomy rather than that of the virtual observatory (VO). The VO is largely an information system which just happens to deal with astronomical information. It will be the tools that work on top of the VO infrastructure which enable astronomy to be done, not the infrastructure itself.

We've been working with the original component diagram, as represented in the Phase A Report for some time now.

I'd like to simplify that diagram a little into one which represents the core domain entities of any VO (as envisaged by AstroGrid).

Domain.gif

Entities

As is obvious, this diagram is based on the component one, drawing multiple entities into one. A brief description of each entity:

  • Registry : maintains a list of resources known to the VO
  • Community : manages aspects of VO to do with people, organisations, projects etc
  • Portal : the user interface to the VO, whether server/web-based or client-based
  • Security : to do with authenticating and authorising users and permissioning access to resources
  • Workflow : doing work on the VO, either immediately or by constructing and running jobs
  • Messaging : passing messages between components
  • Data Access : how access to data is enabled
  • perSpace : a virtual directory of user owned information space
  • Tools : any service which can be activated (or plugged into a workflow)

Links

It is in the links between the entities where VO interoperability will be enabled. Document and message exchange formats and protocols must be standardised if the components created by the different VO projects can work together and, for any user, replace one another.

Core entities

There are many ways to picture the domain space of a VO system. The one above is very simplistic and is component focussed, ie based on the likely major components of such a system. There may be over-simplification in this model: the Workflow component includes workflow construction and job control which are quite distinct; Tools covers a wide variety of different types of software component; Security encompasses both user authentication and the access policies for resources. At least this approach is a start and will enable people to picture both the way AstroGrid is structured and one possible generic architecture for the VO.

Registry

The registry is the source of metadata for any resource in the VO. Three terms in that statement deserve further explanation:

Resource:
A resource is anything that might be used or referenced by any user, agent or component of a VO system. Resources include, as expected, services such as those which provide access to datasets or images, those which will analyse or reduce data, those which provide visualisation of data etc. Other resources will include people, organisations, projects, groups of people etc. AstroGrid will also want to register items such as files and tables which are managed under the MySpace? virtual storage system (referred to in this document by the generic name of MySpace?).

Metadata:
Metadata are items of information used to describe a resource. So all resources will include some identity information, a service will be described by curation information (who created and publishes the service, a URL for more information etc.) and means of invocation, a specific data access service will include coverage information and information about data itself.

Source:
That a registry can provide all this metadata does not mean that every registry must store every piece of metadata about every resource. A registry may choose to only store certain classes of resource or to only store the metadata for a select number of resources (the difference being that the list of resources in a class will grow as such resources are added to any registry in the VO while the select list will only grow as teh curator of that registry adds to it).

Resource Identity

A resource will be identified by a ResourceID, consisting of an AuthorityID (which looks like a domain URI) and a RegistryKey (which looks like a path). In xml form this looks like:
   <ResourceID>
      <AuthorityID>...</AuthorityID>
      <RegistryKey>...</RegistryKey>
   </AuthorityID>
and in string form:
   ivo://AuthorityID/RegistryKey

An authority is owned by some person or organisation. They will register it with a Registry and from then on, only that registry will be permitted to register a resource on the VO with that authority (to ensure that this happens, every registry will be required to 'know' which authorities have been registered at all other registries). It will be up to the registry implementation to ensure that only the authority owner (ie the person who registered it) can add resources to the authority.

Structure

At the moment (26 Jun 2003), the structure of the registry is under debate within the IVOA (see TonyOnRegistryStructure) but AstroGrid will implement three separate registries:
  • Services
  • Community
  • MySpace
but all three will conform to the IVOA standard (with AstroGrid-specific extensions).

Community

The Community entity encompasses everything to do with people, groups, organisations and projects. The main goal of creating a community is to allow access to resources to be controlled by groups, projects or organisations and for those groups to decide which people will belong to the group.

In general, a community will consist of:

a registry: this will conform to the IVOA standards for all resource registries

software
which, in addition to normal registry functions, will allow the management of groups, organisations and projects: creation and deletion, adding and removing members. assigning privileges etc.
space
access for community members to personal MySpace

Registry

The community registry

Structure

MySpace

Portal

Security

There are two key aspects to Security:
authentication
user is who he/she says they are
authorisation
user is allowed to perform the selected action

Authentication

Authorisation

The process of authorising a user to perform an action is in three steps:
  • finding the policy document that covers that action
  • determining the identity of those entities authorised to perform the action
  • checking if the user belongs to one of those authorised entities (usually a group)

The above process might be made quicker if the agent through which the user operates (or which is operating on the user's behalf) 'remembers' or 'is told' which authorised entity the user belongs to so that it does not have to check all of them looking for the user as a member. There must be algorithms in existence which deal with this sort of circumstance.

We imagine that policy documents will be managed by a policy server in much the same way that registry entries are managed by a registry server. So some areas of functionality may be similar. The key difference is that one will search a registry for entries whose metadata match some criteria but one will go directly to a policy server looking for the access policies for a specific item.

Workflow

Messaging

Data Access

perSpace

Tools

Interoperability: Links between entities

Taking the above domain diagram, I've added directed labels to the links to indicates some of the entity interactions that might be of interest and worth explaining:

Interaction.gif

Portal --lookup>> Community

Portal/Community --authentication>> Security

Portal --lookup>> Messaging

Portal --create>> Workflow

Workflow --create>> Messaging

Workflow --lookup>> Registry

Workflow --authorisation>> Registry

Workflow/Tools --invoke>> DataAccess/perSpace/Tools

DataAccess/perSpace/Tools --authorisation>> perSpace

DataAccess/Tools --create>> perSpace

Tools --UIdefinition>> Portal

Interoperability: within entities

In the domain model presented here, I have not dissected any of the (very) high level entities. Where it is likely that a sub-entity from one VO implementation will need to address a sub-entity from another implementation, we will require interoperability standards. The only one I can envisage at the moment is Workflow --invoke>> JobControl.

WorkflowEngine --invoke>> JobControl

Standards and Actions

So, which of the above standards do we need now. For those VO projects which are prototyping aspects of the VO then it will be the standards particularly applicable to the area they are prototyping - UCDs, registry, image access etc - but for AstroGrid, it is those standards which govern how the underlying infrastructure hangs together:

  • how does a tool represent its desired UI to a portal?
  • how is the data access policy of a data centre represented?
  • how is a workflow described so that it can be managed by a job control mechanism?
  • how does a user find out his allocation of space on a given server?
  • etc. etc. etc.

The first action needed will be for the IVOA to agree on what the underlying infrastructure of a VO looks like, then to define the areas of that infrastructure which require standardisation.

-- TonyLinde - 09 Jun 200--

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r11 < r10 < r9 < r8 < r7 | More topic actions
 
AstroGrid Service Click here for the
AstroGrid Service Web
This is the AstroGrid
Development Wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback