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

From Apache OpenOffice Wiki
< Uno
Jump to: navigation, search
(Moved Implementation Helper.)
(Moved out Binary Component Loader stuff.)
Line 48: Line 48:
 
|-
 
|-
 
| [[Uno/Java/Java-Urp Bridge | Java-Urp Bridge]] - [[Uno/Spec/Purpose Environment | Purpose Environment]] Support || 0%
 
| [[Uno/Java/Java-Urp Bridge | Java-Urp Bridge]] - [[Uno/Spec/Purpose Environment | Purpose Environment]] Support || 0%
 +
|-
 +
| [[Uno/Effort/Binary/Component Loader/Purpose Environment Support | Purpose Environment Support for the Binary UNO Component Loader]] || 0%
 
|-
 
|-
 
| [[Uno/Binary/Uno-Urp Bridge | Uno-Urp Bridge]] - [[Uno/Spec/Purpose Environment | Purpose Environment]] Support || 0%
 
| [[Uno/Binary/Uno-Urp Bridge | Uno-Urp Bridge]] - [[Uno/Spec/Purpose Environment | Purpose Environment]] Support || 0%
Line 62: Line 64:
 
|-
 
|-
 
| Environment Tester || [[OpenOffice.org Wiki: Spec Uno Bin Tester Environment | draft]] || 80% || 12/22/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Tester Environment | UTF2]] || 100% || 02/17/2006
 
| Environment Tester || [[OpenOffice.org Wiki: Spec Uno Bin Tester Environment | draft]] || 80% || 12/22/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Tester Environment | UTF2]] || 100% || 02/17/2006
|-
 
| style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | Features for the Binary UNO Component Loader
 
|- style="background-color:#99CCFF; font-weight:bold;"
 
| Title || Spec || % || Changed || Impl || % || Changed || Test || % || Changed
 
|-
 
| Implementation Env. || [[OpenOffice.org Wiki: Spec Uno Bin Loader Implementation Environment | draft]] || 80% || 02/09/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Loader Implementation Environment | UTF2]] || 100% || 02/09/2006 || [[OpenOffice.org Wiki: Test Uno Bin Loader Implementation Environment | UTF2]] || 100% || 02/09/2006
 
|-
 
| Stacked Environments || [[OpenOffice.org Wiki: Spec Uno Bin Loader Stacked Environments | draft]] || 80% || 02/08/2006 || [[OpenOffice.org Wiki: Impl Uno Bin Loader Stacked Environments | UTF2]] || 100% || 02/09/2006 || [[OpenOffice.org Wiki: Test Uno Bin Loader Stacked Environments | UTF2]] || 100% || | 02/09/2006
 
|-
 
| Implementation Specific Environments || [[OpenOffice.org Wiki: Spec Uno Bin Loader Implementation Specific Environments | final]] || 100% || 12/20/2005 || [[OpenOffice.org Wiki: Impl Uno Bin Loader Implementation Specific Environments | UTF2]] || 100% || 02/08/2006 || [[OpenOffice.org Wiki: Test Uno Bin Loader Implementation Specific Environments | UTF2]] || 100% || 02/09/2006
 
|-
 
| Adapt to Misc. Improvements || || || || [[OpenOffice.org Wiki: Impl Uno Bin Loader Adapt Misc Improvements | UTF2]] || 100% || 02/08/2006
 
|-
 
| Adapt to Identity Mapping || || || || [[OpenOffice.org Wiki: Impl Uno Bin Loader Adapt Identity Mapping | UTF2]] || 100% || 02/07/2006
 
|-
 
| Remove Deprecated Stuff || || || || [[OpenOffice.org Wiki: Impl Uno Bin Loader Removed Deprecates | UTF2]] || 100% || 02/07/2006
 
 
|-
 
|-
 
| style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | Features for C++ UNO
 
| style="font-weight:bold; color:#FFFFFF; background-color:#00315A;" | Features for C++ UNO

Revision as of 08:45, 21 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%
Uno Threading Model for Binary UNO. 90%
Debugging Bridge for Binary UNO. 90%
Uno Threading Model for C++ UNO. 75%
Uno Threading Model for Java UNO. 0%
Uno Threading Model for CLI UNO. 0%
Uno Threading Model for Remote UNO. 0%
Cpp-Uno Bridge - Purpose Environment Support UTF2
C++ Misc Improvements UTF2
C++ Purpose Bridge Implementation Helper UTF2
Jni-Uno Bridge - Purpose Environment Support 0%
Java-Urp Bridge - Purpose Environment Support 0%
Purpose Environment Support for the Binary UNO Component Loader 0%
Uno-Urp Bridge - Purpose Environment Support 0%
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 C++ UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Test Helper: Object Factory draft 80% 01/30/2006 UTF2 100% 01/31/2006

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