Difference between revisions of "GOCDB/Doctrine"

From EGIWiki
Jump to: navigation, search
(Request for Comments)
(Replaced content with "Moved to GOCDB/Release4/Development/v5")
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<< Back to [[GOCDB/Release4/Development]] <br />
+
Moved to [[GOCDB/Release4/Development/v5]]
 
 
= Introduction =
 
By replacing the PROM model with the [http://www.doctrine-project.org Doctrine ORM] GOCDB will support RDBMSs other than Oracle.
 
 
 
= Benefits =
 
* Write code once, deploy to Oracle, MySQL, Postgres, SQLite.
 
* Much simpler than the [[GOCDB/PROM]] model (see below)
 
 
 
 
 
{|
 
|[[File:Get_Site_PROM.png|200px|thumb|left|PROM SQL]]
 
|[[File:Get_Site_Doctrine.png|200px|thumb|left|Doctrine SQL]]
 
|}
 
 
 
 
 
 
 
= Changes =
 
The move to Doctrine will introduce changes to the GOCDB portal URLs and to the PRIMARY KEY, ID and GOCDB_PORTAL_URL fields of the GOCDB PI.
 
 
 
== Portal URLs ==
 
In PROM, each "entity" (site, service endpoint, downtime) was assigned an ID from a global pool. There is only one object 123, the GRIDOPS-GOCDB site. The following URL is used to access an entity regardless of type:
 
 
 
https://goc.egi.eu/portal/index.php?Page_Type=View_Object&object_id=123&grid_id=0
 
 
 
In Doctrine, each entity receives an ID unique only to that entity type. There is a site with ID 123, a service endpoint with ID 123 and a downtime with ID 123. The new URL will reflect the entity type:
 
 
 
https://goc.egi.eu/portal/index.php?Page_Type=Site&id=123
 
 
 
https://goc.egi.eu/portal/index.php?Page_Type=Service_Endpoint&id=123
 
 
 
https://goc.egi.eu/portal/index.php?Page_Type=Downtime&id=123
 
 
 
(...and so on for each GOCDB entity type)
 
 
 
[[File:GOCDB_URLs.png|900px]]
 
 
 
== PI Fields ==
 
In the GOCDB PI there are a number of PROM specific fields that will change if we move to Doctrine: PRIMARY_KEY, ID and GOCDB_PORTAL_URL. These are highlighted below:
 
 
 
[[File:Get_Site_Fields.png]]
 
 
 
The PRIMARY_KEY and ID fields are generated by PROM and will be either removed or replaced with similar values from Doctrine.
 
 
 
We would like to remove the ID field entirely and use the primary key only. The primary key will be purely numeric and unique only to the specific entity type (e.g. there will be a Site with ID 5 and a Service Endpoint with ID 5).
 
 
 
= Request for Comments =
 
If these changes affect a system that reads from the GOCDB-PI or links to the web portal please let us know: [mailto:gocdb-admins@mailman.egi.eu]
 

Latest revision as of 15:51, 5 August 2013