Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Selector Architecture Harmonization"

(Server Side)
(Synchronizing Card Store (Component Set))
 
(117 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#eclipseproject:technology.higgins}} [[Image:Higgins_logo_76Wx100H.jpg|right]]  
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
 +
 
 +
[[Image:Higgins_logo_76Wx100H.jpg|right]]  
  
 
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.  
 
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.  
  
A good first step in converging the selectors is start by harmonizing the [[GTK and Cocoa Selector]] and the [[Adobe AIR Selector]].  
+
The initial step involves harmonizing the architecture of [[GTK and Cocoa Selector 1.0]] with the architecture of [[AIR Selector 1.1-Win]] and initially implement this new harmonized architecture in [[GTK Selector 1.1-Win]].  
  
===Top Level Diagram===
+
=== Overview ===
[[Image:Selector-arch-v1.1.113.png]]
+
  
Notes:
+
Aside from UI differences, the [[GTK Selector 1.1-Win]] performs all processing locally, whereas the [[AIR Selector 1.1-Win]] 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 i-card selector service" (LICS) component that alternative selector UI layers can use. A new [[CardSync API]] would be added to the Higgins server.
* 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 "Selector Client" would be common.
+
  
==Phase 1==
+
==Open Issues==
Phased approach to implementation.
+
This is the place to capture open design issues in this project.
  
===First Steps===
+
# 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.
  
The first objective is to perfectly align the existing [[Components]] with the above diagram.
+
== Top Level Architecture==
# Jeesmon: Split the shared tcpserver project into multiple projects to align with above. Suggestions for new names:
+
As you can see we have formalized the separation of presentation from core services:
#* 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 [https://bugs.eclipse.org/bugs/show_bug.cgi?id=258504 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.selector.client in C++) - selector services in AIR/Flex
+
# 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)
+
#* Split out just the GTK-based user interface portion of .cbselector (shown in a box [http://wiki.eclipse.org/GTK_and_Cocoa_Selector#Architecture here]) into its own project (e.g. .higgins.selector.ui.gtk) as the first alternative implmentation project within the new [http://wiki.eclipse.org/Components#Selector_UI Selector UI] component shown above.
+
# Change GTK-based Selector to use standard Higgins [http://wiki.eclipse.org/Components#Higgins_Browser_Extension_.28HBX.29 HBX]
+
  
== Phase 2 ==
+
[[Image:Unified-selector-1.1.116.png]]
  
===Client/Server===
+
Notes:
* Need to define a remote card store sync protocol
+
* We introduce the notion of a "Component Set" -- a set of components
* Design decision
+
* This architecture would run on Windows, Mac OSX, Linux and (with further work) potentially smart phones
** SOAP or HTTP
+
* The "Selector UI" component would be either GTK, Cocoa or AIR-based, but the underlying [[Local I-Card Service]] would be common.
** Reuse IdAS on the back end
+
  
===Client Side===
 
The client side of phase 2 involves replacing the current i-card store in .cbselector with an i-card cache
 
  
Overview:
 
  
[[Image:Unified-client-1.1.115.png]]
+
==Local I-Card Service ==
  
Details:
+
Overview:
  
[[Image:I-card-cache-1.1.115.png]]
+
[[Image:Lics-v.1.1.123.png]]
  
Implementation Notes:
+
==Synchronizing Card Store ==
* As shown above, one way to proceed would be to create (possibly by cross compiling the java code to native code) a local I-Card Registry and local I-Card Providers. We'd need to explore the feasibility of doing this. Note: the IdAS Client and XDI CP (both shown above) have been cross compiled using GCJ by Markus successfully.
+
Current design:
  
===Server Side===
+
[[Image:Sync-card-store.1.1.120.png]]
  
We support the client via the XDI Engine. See below:
+
== Server ==
  
[[Image:Server-1.1.117.png]]
+
Implement the new [[CardSync API]] in the [[I-Card Sync Web App]] component. See below:
  
Tasks:
+
[[Image:Server-mods-v4.png]]
* Need to make sure that the personal and managed cards are stored in IdAS rather than locally in the i-card providers. This is done by using the right plugins, (e.g. icard.provider.managed and not icard.provider.managed)
+
* Need to design how the XDI Engine authenticates to IdAS (does it need to interface with the User Profile Component?)
+
* Need to change the CPs that store cards to update timestamp metadata on attributes
+

Latest revision as of 10:20, 6 July 2009

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Higgins logo 76Wx100H.jpg

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 AIR Selector 1.1-Win and initially implement this new harmonized architecture in GTK Selector 1.1-Win.

Overview

Aside from UI differences, the GTK Selector 1.1-Win performs all processing locally, whereas the AIR Selector 1.1-Win 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 i-card selector service" (LICS) component that alternative selector UI layers can use. A new CardSync API would be added to the Higgins server.

Open Issues

This is the place to capture open design issues in this project.

  1. 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.
  2. 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:

Unified-selector-1.1.116.png

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.


Local I-Card Service

Overview:

Lics-v.1.1.123.png

Synchronizing Card Store

Current design:

Sync-card-store.1.1.120.png

Server

Implement the new CardSync API in the I-Card Sync Web App component. See below:

Server-mods-v4.png

Back to the top