Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "GOCDB/Release4/Development"

From EGIWiki
Jump to navigation Jump to search
Line 46: Line 46:
* <b>A Regional-Synchronizing GOCDB.</b> See [[GOCDB/Release4/Regionalisation]] plans and progress report page.  
* <b>A Regional-Synchronizing GOCDB.</b> See [[GOCDB/Release4/Regionalisation]] plans and progress report page.  


* <b>The GOCDB role/permissions model may need to be updated</b> in order to cater for a finer grained permission proposal currently emerging as a new EGI requirement.  
* <b>The GOCDB role/permissions model may need to be updated</b> in order to cater for a finer grained permission proposal currently emerging as a new EGI requirement. [[Media:FinerGrainedGOCDB_rolesVeraProposal2.xls]]





Revision as of 09:19, 15 July 2011

Recent Completed Developments

Current Developments

See GOCDB/Release4/Feedback : This page groups all feedback received on the new system.

The list of [GOCDB development items is available in the EGI RT ticket tracker]

These are the developments we are currently working on. They come from the agreed development list, as defined by the Operational Tools Advisory Group (OTAG) who filters and prioritizes user requests. As of June 2011, development plans are focused on re-developing and refactoring the current system in order to accommodate newly emerging feature requests that cannot be easily implemented with the current system. These include;


  • The GUI logic is being re-developed. Currently GOCDB4 uses a generic module for drawing a forms and GUI components such as tables. This proprietary module uses a single code path for all form and table based operations. In doing this, the code has become too rigid making it difficult to deal with form/table requirements on a per-page basis. This module will be replaced with a more flexible controller per page architecture with view templates. This is necessary to address a number of the RT requirement requests (approximately half suggest GUI improvements).
  • The object cardinality logic needs to be refactored to fix known issues, particularly Domain, Production-Status and Service-Endpoint objects.
  • Atomic database transactions and fix tx demarcation issues (e.g. on site creation Savannah 74860). Currently, the GOCDB PROM API does not allow demarcation of transaction boundaries within high level business service layers (e.g. as in a regular stateless service facade). At present, explicit commits and rollbacks are declared in low-level PLSQL functions including fnNewLink(), fnUpdateObject(), fnDeleteObject(), fnDeleteLink(). Consequently, any business operation that invokes multiple low level operations such as inserting a site and adding new SEs cannot declare tx boundaries around the whole process. These operations are therefore not atomic and can leave the db in an inconsistent state if an error occurs (since rollback over all the low level operations is not possible and probably accounts for some inconsistencies seen in the db). The PROM PL/SQL layer and the higher level DAO and Service layers require refactoring so that transaction demarcation can be moved into the business operations.
  • Explicitly indicate if all SEs of a site are in downtime through the PI
  • Redevelop the xml_output module to implement nested XML collections, probably using the Query2XML package. This is necessary because the existing XML Output module will only generate flat XML documents (e.g. that often map to individual DB entities). Currently SQL joins/associations between Sites, SEs and URLs cannot be represented as hierarchical/nested XML documents (for example, consider nesting multiple EndpointLocation objects/URLs in the ServiceEndpoint XML, see: Media:GocdbGlue2UnicoreV2.pdf).
  • New ‘tagging’ logic is required so that new data-scoping rules can be applied to GOCDB entities, allowing Sites, Services and other GOCDB data to be identified as either ‘EGI,’ ‘Local’ or ‘some other’ scoped data. This is required for the Regional-Synchronizing GOCDB so that only appropriately scoped ‘EGI’ data is published to the central instance while locally scoped data and other customisations can be excluded. See GOCDB/Release4/Regionalisation#1.29_Data_Grouping.2FScoping
  • Support for 'Virtual Site Entities (VSite)' There is a requirement to group existing Service Endpoints (currently grouped under their corresponding 'owning' physical Site) under a new 'Virtual Site' entity. See: https://rt.egi.eu/rt/Ticket/Display.html?id=987 and https://wiki.egi.eu/wiki/Logical-site
    • At present, the proposed features of a VSite will include (see Media:VirtualSitesDesign.pdf‎):
      • A VSite will be a separate GOCDB entity, and will have users and other attributes much like an existing physical site but with different rules (described below). Importantly, we believe this grouping has to be a new gocdb object in order to clearly define the intended semantics of the grouping (e.g. both a 'VSite' and an imaginary 'VService' could both group many SEs, but a VSite has very different semantics to a VService !).
      • A VSite will be used to group existing Service Endpoints only (i.e. SEs that have already been created under their owning physical Site).
      • A VSite cannot group new SEs that have no owning physical site.
      • A single SE may only have a single parent physical Site (i.e. GOCDB cardinality of 1 between Site and SE)
      • A single SE can have many parent VSites (requires GOCDB cardinality of 'many-to-many' between Virtual Site and SE).
      • New PI queries are proposed to support querying of VSites and querying of SEs that are grouped under a VSite (much like the existing get_site and get_service_endpoint methods (https://wiki.egi.eu/wiki/GOCDB/PI/get_service_endpoint_method and https://wiki.egi.eu/wiki/GOCDB/PI/get_site_method ). The following XML example is related: https://twiki.cern.ch/twiki/pub/Main/ATPVOFeeds/atp_vo_feed_example.xml
      • The permissions model of a VSite is not yet well defined. It is currently proposed that users with a role over the owning physical site should maintain their cascading permissions over their SEs (i.e. no modification to the current site/permissions model), however, users with a role over the VSite will not have any cascading permissions over the SEs. Consequently, this has the following important implications;
        • A VSite could not be used to declare a downtime for all its member SEs.
        • Similarly, users with a role over the VS will not be able to update/modify a member SE.
      • If VSite permissions are required (e.g. for declaring SE downtimes and modifying SEs), then a user may have to request a new role under the physical site or be granted a corresponding permission. These requirements are currently undefined.
  • View downtimes per site Currently the view downtimes window is provided by the OPS portal via an inner frame. This or something similar will need to be hosted within the gocdb portal itself (required for regionalisaton).


development item Estimated release Estimated date
Provide a production quality package for GOCDB regional module 4.0d7 Oct 2010
Improvement of GOCDB failover system and backend replication 4.0.1 May 2011
New service endpoint URL associations for new service types (see above) ? April/June 2011
Re-develop GUI Logic (see above) ? Sept 2011 (EGI-Y2)
Update/refactor role model for finer grained permissions (see above) ? EGI-Y2
Data scoping by tagging GOCDB entities (see above) ? EGI-Y2
Regionalisation GOCDB/Release4/Regionalisation ? EGI-Y2/3
Work on GOCDB and Operations Portal common front end ? EGI-Y2
GOCDB interface to the dynamic information system (BDII/GluE) ? EGI-Y3