Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Selector Architecture Harmonization"
(→Open Issues) |
(→Open Issues) |
||
Line 10: | Line 10: | ||
This is the place to capture open design issues in this project. | This is the place to capture open design issues in this project. | ||
− | # In the long run browser plugins need to authenticate themselves to the [[Local I-Card Service]] envisioned | + | # In the long run if the selector UI runs in a separate process then it needs to authenticate itself to the [[Local I-Card Service]] envisioned below. We haven't yet decided how to do this. |
+ | # In the long run browser plugins need to authenticate themselves to the [[Local I-Card Service]] envisioned below. We don't yet know how to do this. | ||
== Top Level Architecture== | == Top Level Architecture== |
Revision as of 15:01, 6 April 2009
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
Since Selectors use most of the Higgins Components, work on harmonizing the Higgins selectors into a single architecture would be a huge step towards overall Higgins architecture harmonization/convergence.
The initial step involves harmonizing the architecture of GTK and Cocoa Selector 1.0 with the architecture of Selector 1.1 Win-AIR and initially implement this new harmonized architecture in Selector 1.1 GTK. Aside from UI differences, the former performs all processing locally, whereas the latter presents a local UI but relies on a hosted server. The latter has the advantage of supporting roaming of cards as well as multiple simultaneous clients. The former has performance advantages. We'd like to get the best of both worlds by having a converged architecture which synchronizes cards between the client and the server. The common code would be in a local "selector service" component that alternative UI layers can use.
Contents
Open Issues
This is the place to capture open design issues in this project.
- In the long run if the selector UI runs in a separate process then it needs to authenticate itself to the Local I-Card Service envisioned below. We haven't yet decided how to do this.
- In the long run browser plugins need to authenticate themselves to the Local I-Card Service envisioned below. We don't yet know how to do this.
Top Level Architecture
As you can see we have formalized the separation of presentation from core services:
Notes:
- We introduce the notion of a "Component Set" -- a set of components
- This architecture would run on Windows, Mac OSX, Linux and (with further work) potentially smart phones
- The "Selector UI" component would be either GTK, Cocoa or AIR-based, but the underlying Local I-Card Service would be common.
Phase 1
The first objective is to perfectly align the existing Components with the above diagram.
- Jeesmon: Split the shared tcpserver project into multiple projects to align with above. Suggestions for new names:
- org.eclipse.higgins.hss for http://wiki.eclipse.org/Components#Higgins_Selector_Selector_.28HSS.29
- org.eclipse.higgins.hss.manager for http://wiki.eclipse.org/Components#HSS_Manager
- org.eclipse.higgins.hss.launcher for http://wiki.eclipse.org/Components#Higgins_Launcher
- org.eclipse.higgins.hbx.ie (NOT hbxie! (taken)) for http://wiki.eclipse.org/Components#Higgins_Browser_Extension_.28HBX.29
- Jeesmon: Merge the currently separate HSS connectors into .higgins.hss per the following ticket 258504
- Jeesmon: Split the AIR Selector code (org.eclipse.higgins.air ) into two project files
- org.eclipse.higgins.selector.ui.air - selector UI in AIR/Flex
- org.eclipse.higgins.selector.client.air (will eventually be replaced with a common .higgins.lics Local I-Card Service in C++) - selector services in AIR/Flex
- Change GTK-based Selector to use standard Higgins HBX
Done
- Andy: Split GTK/Cocoa Selector component into smaller pieces. Here's the first split:
- Leave "org.eclipse.higgins.cbselector" project as-is (for Higgins 1.0 use)
- Copy just the GTK-based user interface portion of .cbselector (shown in a box here) into a new project .higgins.selector.ui.gtk as the first alternative implementation project within the new Selector UI component shown above.
- Copy the rest of the .cbselector project into a new .higgins.lics (Local I-Card Service) component
Phase 2
Local I-Card Service
The client side of phase 2 involves creating the .higgins.lics project by copying the "Identity Selector Service" from the .cbselector [DONE] and replacing the its i-card store with an i-card cache [IN PROGRESS]
Overview:
Synchronizing Card Store (Component Set)
Current design:
Server Modifications
Implement the new CardSync API in the I-Card Sync Web App component. See below:
Phase 3
This phase is about adapting the AIR Selector to the new architecture.