Difference between revisions of "Uno/Effort/Binary/Extend Threading-Model"

From Apache OpenOffice Wiki
< Uno
Jump to: navigation, search
(Some rearrangements.)
(Moved out Binary UNO Efforts)
Line 20: Line 20:
  
  
{|  
+
{|border="1" cellspacing="0" class="wikitable"
 
|+  Efforts
 
|+  Efforts
|-  
+
|- style="background:#efefef;"
| Title || Version || Changed || Type
+
| Task || State
 
|-
 
|-
 
| [[Uno/Effort/Spec/Threading Model|Specify]] the Uno Threading Model || 90%
 
| [[Uno/Effort/Spec/Threading Model|Specify]] the Uno Threading Model || 90%
Line 39: Line 39:
  
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
|+ style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | Features for Binary UNO
 
|- style="background-color:#99CCFF; font-weight:bold;"
 
| Title || Spec || % || Changed || Impl || % || Changed || Test || % || Changed
 
|-
 
| Threading Models || [[OpenOffice.org Wiki: Spec Uno Bin Threading Model | draft]] || 80% || 01/10/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Threading Model | UTF2]] || 100% || 03/06/2006 || open || 0% || 12/14/2005
 
|-
 
| Implementation Environment || [[OpenOffice.org Wiki: Spec Uno Bin Runtime Implementation Environment | final]] || 100% || 03/06/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Runtime Implementation Environment | UTF2]]  || 100% || 01/24/2006
 
|-
 
| Thread Unsafety Bridge || [[OpenOffice.org Wiki: Spec Uno Bin Mutex Environment | draft]] || 80% || 01/17/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Mutex Environment | UTF2]] || 100% || 02/13/2006 || [[OpenOffice.org Wiki: Test Uno Bin Mutex Environment | UTF2]] || 80% || 01/27/2006
 
|-
 
| Thread Affinity Bridge || [[Uno/Binary/Spec/Thread Affine Environment | draft]] || 80% || 01/17/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Thread Environment | UTF2]] || 100% || 01/17/2006 || [[OpenOffice.org Wiki: Test Uno Bin Thread Environment | UTF2]] || 80% || 01/27/2006
 
|-
 
| Stacked Environments || [[OpenOffice.org Wiki: Spec Uno Bin Environment Stacks | draft]] || 80% || 01/17/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Stacked Environments | UTF2]] || 100% || 02/27/2006 || [[OpenOffice.org Wiki: Test Uno Bin Stacked Environments | UTF2]] || 100% || 01/27/2006
 
|-
 
| Cascaded Mappings || [[OpenOffice.org Wiki: Spec Uno Bin Cascaded Mapping | final]] || 100% || 12/22/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Runtime Cascaded Mappings | UTF2]] || 100% || 02/01/2006 || [[OpenOffice.org Wiki: Test Uno Bin Runtime Cascaded Mappings | UTF2]] || 100% || 01/30/2006
 
|-
 
| Purpose Environments || [[OpenOffice.org Wiki: Spec Uno Bin Purpose Environments | draft]] || 100% || 12/21/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Runtime Purpose Environments | UTF2]] || 100% || 12/21/2005 || [[OpenOffice.org Wiki: Test Uno Bin Runtime Purpose Environments | UTF2]] || 100% || 02/01/2006
 
|-
 
| Environment Substitution || [[OpenOffice.org Wiki: Spec Uno Bin Environment Substituion| draft]] || 80% || 02/01/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Runtime Environment Substitution | UTF2]] || 100% || 02/01/2006 || [[OpenOffice.org Wiki: Test Uno Bin Runtime Environment Substitution | UTF2]] || 100% || | 02/01/2006
 
|-
 
| Identity Mapping || [[OpenOffice.org Wiki: Spec Uno Bin Identity Mapping| final]] || 100% || 12/20/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Runtime Environment Identify Mapping | UTF2]] || 100% || 12/16/2005 || open || 0% || 12/14/2005
 
|-
 
 
| style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | New Binary UNO Tools
 
| style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | New Binary UNO Tools
 
|- style="background-color:#99CCFF; font-weight:bold;"  
 
|- style="background-color:#99CCFF; font-weight:bold;"  

Revision as of 15:12, 20 April 2006

Creating the UNO Threading Framework

[1], [2]

Status: in progress

The goal of the UNO threading framrwork is, to provide a way to design an applications threading architecture independent of the implementation. This can be described as Transparent Concurrency, in respect to the implementations.

The UNO Threading Framework basically is going to introduce the notion of an apartment into the UNO world. An apartment in UNO terms is a purpose environment. Such an environment can be seen as a dedicated part of a process, giving space for objects of the same ABI and the same purpose. An environment can only be entered and left via defined doors, being proxy objects representing objects outside respectively inside the apartment.

UNO Envs.jpg

All calls from one environment to another are intercepted, references to local objects get replaced with proxies to these local objects, this operation is called "mapping" in UNO terms. An object gets "mapped" from one environment to another. Proxies already representing to be mapped objects of another environment become reused during the "mapping" operation, ensuring that an object can only be "mapped" once.

Purpose environments may be dedicated to MutExes or threads. In the sense, that a MutEx becomes acquired or a thread gets switched before a call enters an environment.

The following specifications and features give an overview over the UNO Threading Framework. The specifications roughly depend on each other in the order listed. For example, the Threading Models specification depends on the Implementation Environments, all pieces basically creating a stack.

Tasks:


Efforts
Task State
Specify the Uno Threading Model 90%
Implement it for Binary UNO. 90%
Implement it for C++ UNO. 75%
Implement it for Java UNO. 0%
Implement it for CLI UNO. 0%
Implement it for Remote UNO. 0%
New Binary UNO Tools
Title Spec  % Changed Impl  % Changed Test  % Changed
Debug Environment draft 80% 01/23/2006 UTF2 100% 01/23/2006 UTF2 100% 01/23/2006
New Binary UNO Testers
Title Spec  % Changed Impl  % Changed Test  % Changed
Environment Stack Tester draft 80% 01/27/2006 UTF2 100% 02/01/2006
Mapping Tester draft 80% 12/22/2005 UTF2 100% 01/30/2006
Environment Tester draft 80% 12/22/2005 UTF2 100% 02/17/2006
Features for the Binary UNO Component Loader
Title Spec  % Changed Impl  % Changed Test  % Changed
Implementation Env. draft 80% 02/09/2006 UTF2 100% 02/09/2006 UTF2 100% 02/09/2006
Stacked Environments draft 80% 02/08/2006 UTF2 100% 02/09/2006 UTF2 100% 02/09/2006
Implementation Specific Environments final 100% 12/20/2005 UTF2 100% 02/08/2006 UTF2 100% 02/09/2006
Adapt to Misc. Improvements UTF2 100% 02/08/2006
Adapt to Identity Mapping UTF2 100% 02/07/2006
Remove Deprecated Stuff UTF2 100% 02/07/2006
Features for C++ UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Shield helpers draft 80% 02/28/2006 UTF2 100% 02/28/2006 UTF2 100% 02/28/2006
Environment Aware Reference draft 80% 01/10/2006 UTF2 100% 02/23/2006 UTF2 100% 02/03/2006
Environment Guards draft 80% 01/10/2006 UTF2 100% 01/11/2006 open 0% 01/10/2006
Implementation Environment draft 80% 02/14/2006 UTF2 100% 02/28/2006 UTF2 100% 02/17/2006
Stacked Environments draft 80% 02/10/2006 UTF2 100% 02/10/2006 UTF2 100% 02/10/2006
Misc. Improvements draft 80% 12/14/2005 UTF2 100% 12/16/2005 open 0% 12/14/2005
Test Helper: Object Factory draft 80% 01/30/2006 UTF2 100% 01/31/2006
Bridge: Purpose Env. Support UTF2 100% 01/30/2006 UTF2 100% 01/30/2006
Helper: Purpose Environment Implementation draft 80% 01/23/2006 UTF2 100% 02/14/2006 UTF2 100% 01/30/2006
Features for Java UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
JNI Bridge: Purpose Env. Support
URP Bridge: Purpose Env. Support
Features for CLI UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Features for remote UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Purpose Env. Support

Current understanding of the topic lets us think, that the changes of OOo / UNO on behalf of the Threading Framework are going to be integrated into one of the next updates, probably early in 2006.

Personal tools