View Source

<ac:macro ac:name="note"><ac:parameter ac:name="title">&quot;Technology Preview&quot;</ac:parameter><ac:rich-text-body>
<p>Live Mesh is currently in Technology Preview state. As such, the API is subject to change. Still, I'd like to work early on this so we can have the component available when Mesh is out of technology preview state.</p></ac:rich-text-body></ac:macro>
<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[{zone-template-instance:ZFPROP:Proposal Zone Template}

{zone-data:component-name}
Zend_Service_Windows_Live_Mesh
{zone-data}

{zone-data:proposer-list}
[Ivo Jansch|mailto:ivo@ibuildings.com]
{zone-data}

{zone-data:liaison}
TBD
{zone-data}

{zone-data:revision}
1.0 - 30 October 2008: Initial Draft.
{zone-data}

{zone-data:overview}
Zend_Service_Windows_Live_Mesh is a component that allows applications to make use of the API's of the Windows Live Mesh platform, a platform by Microsoft that allows the sharing of data across devices and that offers integration with Windows Live services
{zone-data}

{zone-data:references}
* [Windows Live Mesh|http://mesh.com]
{zone-data}

{zone-data:requirements}
* This component *will* allow the use of Windows Live Mesh services within PHP applications.
* This component *will* use the RESTful API that Windows Live Mesh provides.
* This component *will* use Windows Live authentication services so personalized Mesh data can be retrieved.
* This component *can* use Zend_Cache to store data retrieved from the Mesh. By default, only Zend_Session will be used.
* This component *will* throw Exceptions upon failure.
{zone-data}

{zone-data:dependencies}
* Zend_Service_Rest
* Zend_Session
* Zend_Cache
* Zend_Exception
{zone-data}

{zone-data:operation}
The component will connect to the REST interface that Windows Live Mesh offers, and will provide convenient access to the services of the platform. Convenience classes and methods will be implemented so that Live Mesh can be accessed from a Zend Framework application transparantly.
{zone-data}

{zone-data:milestones}
* Milestone 1: The exact API for the Windows Live Mesh component will be defined
* Milestone 2: Working proof of concept supporting use case #1 will be checked into the incubator
* Milestone 3: Working prototype checked into the incubator supporting the remaining use cases will be checked into the incubator.
* Milestone 4: Unit tests exist, work, and are checked into SVN.
* Milestone 5: Initial documentation exists.
{zone-data}

{zone-data:class-list}
* Zend_Service_Windows_Live_Mesh
* Zend_Service_Windows_Live_Mesh_Object
* Zend_Service_Windows_Live_Mesh_Folder
{zone-data}

{zone-data:use-cases}
||UC-01||

A script authenticates itself against the Live_Mesh service using the connect method of Zend_Service_Windows_Live_Mesh.

||UC-02||

A script using this component will connect to Live Mesh and display a list of folders.

||UC-03||

A script using this component will upload and download files to one of the Live Mesh folders.

{zone-data}

{zone-data:skeletons}
{code}
class Zend_Service_Windows_Live_Mesh_Exception extends Zend_Exception {}

class Zend_Service_Windows_Live_Mesh {
public function connect();
public function getFolders();
}

class Zend_Service_Windows_Live_Mesh_Folder {
public function getName();
public function getContents();
public function getObjectMetaData();
public function getObject();
public function uploadObject();
}

class Zend_Service_Windows_Live_Mesh_Object {
public function getName();
public function getData();
}

{code}
{zone-data}

{info:title=Discussion points}
The following points are still up for discussion:

* The Mesh uses 'devices'. Devices are someone's pc, his mobile, his media center etc. Is it feasible to think that someone's website is a 'device' as well? In other words, should we register the site using the Mesh services as a device?
{info}

{zone-template-instance}]]></ac:plain-text-body></ac:macro>