Changes between Version 31 and Version 32 of VirtualCollectionRegistry


Ignore:
Timestamp:
12/10/15 14:14:18 (8 years ago)
Author:
Twan Goosen
Comment:

design

Legend:

Unmodified
Added
Removed
Modified
  • VirtualCollectionRegistry

    v31 v32  
    200200== Design ==
    201201
    202 **TODO**
    203 
    204 Internal design of the project; class diagrams etc.
     202Global architecture:
     203
     204[[Image(VCR-architecture.png)]]
     205
     206Notes:
     207* The handles for individual virtual collections resolve to the REST resource `vcr/service/virtualcollections/{id}`. By means of content negotiation this will cause a redirect to the front end (`vcr/app/details/{id}`) in case HTML is requested/preferred. If no preferred response format is specified, CMDI will be returned.
     208* The GUI does not use the REST service to access the data, but rather communicates with the relational database directly (using Hibernate)
     209
     210{{{
     211#!comment
     212<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="478px" height="343px" version="1.1" content="%3Cmxfile%20type%3D%22device%22%20userAgent%3D%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_9_5)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F47.0.2526.73%20Safari%2F537.36%22%20version%3D%225.2.6.9%22%20editor%3D%22www.draw.io%22%3E%3Cdiagram%3E3Vldc%2BMmFP01fsyObfkjfoyTbNLOppvWyez2EUtEYoqFB%2BGv%2FfV7QRcJyZLrtWW5Uz94pAtc4J7D4YI63v1i%2ByTJMnoRAeWdfjfYdryHTr8%2FngzhXxt2qWF420sNoWRBanIMM%2FaDorGL1hULaFKoqITgii2LRl%2FEMfVVwUakFJtitQ%2FBi70uSWh7zA0zn%2FB96zcWqCi13vZHuf2ZsjCyPfdGk7RkTvx%2FQilWMfbX6Xsf5pcWL4j1ZSbqPUIMpRDgRj8ttveU6zjaGKXR%2BFxTmg1S0hgHcrgBFOkGa8JXOM%2BX3ezPL6k1UTs7%2ByQiS%2F3o7ziLAyo73nQTMUVnS%2BJr%2BwYwB1ukFhzeevC45ITFN6EkO%2ByCSkWRDBXDNCYc4xMVC6okNOxiA2%2BALEDyeGN83%2BRQjNAUOSjcoo0g%2BGHmOY8JPGBYamI62IsGDYAa%2BCqkikQoYsIfc%2BvU4E21h24xLHTL1Hdt%2FjTEt79tSQwDc4r0qy7TDsrB1AM4HEoYr1hJg42OFy4YIkOKtQzy%2BwGXlBPF1kXvVeEzTe%2BkGVJWYSlYrJK96Gb%2Bjwq4h6A5pPz%2BApQccRj6dC7hKdRPv8%2B%2B%2FmGtAVtb8%2F3Lw2%2FWDF05JZfHUVeqw1G3agy9Xg18uD5ucNn%2FIpyL7asG0KkiPj4S6PNMQPfw%2FOtx9lYBXULlmsGsj0OvVQGy2xAGuD%2FcF6CeDbqrQFaVzlIg3DrbU6CC%2Fph65yoQimiLClRiNAKZqQsCOUBgcyhSj6dyHefpcP3rXSZHuXbRODAjvSqpe3Z7vAqpMXFqjdTZS3OkxnXZJKmPDR927fDs6R14dkU2DUo5WqtsytBphE2nseG2Ypset0QH7NuhwztsprVp%2FGrB73wldBqvMWdwzPlC5pS%2FioQpJmKoMhdKiQVU4Lpgmh1i7gXX7cCbPcbkPu44C3VbJUpEa4BeI0t5pFfP7sgOvay2N65VjbKrXqtO450NhEs8sw21wDvbd%2FV%2B52RvEZFrmijNyaOSuzx6OjD%2FomMX2Aur6HW5vRAz5BaPmLCaSmfME8mHNwgu%2Bcxs2k7sylcEPbwiaCqxq8jsDpxKS2gCL80iyEGSNGE%2FyNxUMCf8dHpQezjtDB80Ht6UoJ76gIC5cykL7YIFgSHDESJdu0jwxgwHk10ZFZGvwRQ93XQ%2FdcdFfUZKn3oAtY6tH3uwLXlo5HxqOVxzQM2x9TmDiKT3G9cUq%2FJptF2xwnvNhsTqwK3XiYpkcq6iIhlqtrAd2tvgpoU8VetqJZ%2FAwisFzry8UslgAlo3Go7mVfR9YK987fGieHDfr9%2FHkVfXP3s%2F8HCCjmg8v%2BkN4f8m%2FSmnD0n%2FYNJFBc2uH5tR%2Fxa039u%2FnHx%2Be3sFi9e9UFZ2cDGPxu5i1vsqrMCaFZ3AolTAYrHRROEkSZhvzZ%2BZnjK6D2ylWMR6kGDB8laEIWeKN5igQmaYYlp1bp5Qvp9Ft83mCThlhyvf6LzisDPXnxv%2Fs0ed8kXNJbMHeM0%2FZqYhz78Oe48%2FAQ%3D%3D%3C%2Fdiagram%3E%3C%2Fmxfile%3E" style="background-color: rgb(255, 255, 255);"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-f5f5f5-1-b3b3b3-1-s-0"><stop offset="0%" style="stop-color:#F5F5F5"/><stop offset="100%" style="stop-color:#B3B3B3"/></linearGradient></defs><g transform="translate(0.5,0.5)"><path d="M 161 277 C 161 255.67 221 255.67 221 277 L 221 325 C 221 346.33 161 346.33 161 325 Z" fill="url(#mx-gradient-f5f5f5-1-b3b3b3-1-s-0)" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><path d="M 161 277 C 161 293 221 293 221 277" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(171,295)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 42px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">MySQL</div></div></foreignObject><text x="20" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 191 201 L 191 254.63" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><path d="M 191 259.88 L 187.5 252.88 L 191 254.63 L 194.5 252.88 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><path d="M 191 141 L 191 67.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 191 62.12 L 194.5 69.12 L 191 67.37 L 187.5 69.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(197,83)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="29" height="37" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">XML<br />JSON<div>CMDI</div></div></div></foreignObject><text x="15" y="24" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="131" y="141" width="120" height="60" fill="url(#mx-gradient-f5f5f5-1-b3b3b3-1-s-0)" stroke="#666666" pointer-events="none"/><g transform="translate(172,158)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="38" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 40px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">REST<div>service</div></div></div></foreignObject><text x="19" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 61 201 L 51 201 L 51 301 L 154.63 301" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><path d="M 159.88 301 L 152.88 304.5 L 154.63 301 L 152.88 297.5 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><rect x="1" y="141" width="120" height="60" fill="url(#mx-gradient-f5f5f5-1-b3b3b3-1-s-0)" stroke="#666666" pointer-events="none"/><g transform="translate(38,158)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="46" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 48px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">OAI<br />endpoint</div></div></foreignObject><text x="23" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 321 201 L 321 301 L 227.37 301" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><path d="M 222.12 301 L 229.12 297.5 L 227.37 301 L 229.12 304.5 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="none"/><rect x="261" y="141" width="120" height="60" fill="url(#mx-gradient-f5f5f5-1-b3b3b3-1-s-0)" stroke="#666666" pointer-events="none"/><g transform="translate(310,165)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="22" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 22px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">GUI</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 446 31 L 387.37 31" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 382.12 31 L 389.12 27.5 L 387.37 31 L 389.12 34.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="461" cy="9" rx="7.5" ry="7.5" fill="#ffffff" stroke="#000000" pointer-events="none"/><path d="M 461 16 L 461 41 M 461 21 L 446 21 M 461 21 L 476 21 M 461 41 L 446 61 M 461 41 L 476 61" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(449,69)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="25" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">User</div></div></foreignObject><text x="13" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 61 61 L 61 134.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 61 139.88 L 57.5 132.88 L 61 134.63 L 64.5 132.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1" y="1" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(36,18)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="50" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 52px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">OAI<div>harvester</div></div></div></foreignObject><text x="25" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 191 61 L 161 61 L 161 134.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 161 139.88 L 157.5 132.88 L 161 134.63 L 164.5 132.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(126,69)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">XML<br />JSON</div></div></foreignObject><text x="16" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="131" y="1" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(174,18)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="34" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 36px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">REST<br />clients</div></div></foreignObject><text x="17" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 321 61 L 321 134.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 321 139.88 L 317.5 132.88 L 321 134.63 L 324.5 132.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 291 61 L 291 101 L 248 101 L 248 134.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 248 139.88 L 244.5 132.88 L 248 134.63 L 251.5 132.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(255,86)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">HTML</div></div></foreignObject><text x="17" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 291 67.37 L 291 101 L 247 101 L 247 140" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 291 62.12 L 294.5 69.12 L 291 67.37 L 287.5 69.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(256,106)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="50" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">HTTP 303</div></div></foreignObject><text x="25" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="261" y="1" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(300,18)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="42" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Web<div>browser</div></div></div></foreignObject><text x="21" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g></g></svg>
     213}}}
    205214
    206215----