Adobe is now providing a document sharing tool, repository and public API’s, launched today. They are calling the service Adobe Share and you can try it out at: share.adobe.com
The Adobe Share application is a Flex based tool used for your repository management. You an add files, remove files, update files, manage user permissions and other basic functionality you would need.
With the new repository Adobe is also releasing a public API to allow developers to build custom tools around the repository. The API services provides hooks into the Share system to manage users, file tracking, file upload, usage tracking, etc.
The API is REST based using a token system that most services have been adopting. Developers request a token for their repository and then use it in the connection to identify the account. The key not only pairs you to the repository, it also prevents abuse and allows Adobe to provide service throttling.
Currently the accounts are throttled to 10,000 calls an hour and require a 500ms delay between calls from a client. Clients are tracked by session so the time is not tracked for the whole account, just the specific client. The 10k limit is set to the account.
One interesting feature that was hinted at during the session is the ability to have a MD5 hash as a unique key for your application. This key allows you to verify that the application you developed is the only one that can access your repository and helps provide a much more secure application. There are currently two SDK libraries available for Adobe share: Java and Flex. They didn’t mention if the SDK for Flex is truly Flex or if it is AS3. My impression is that it was Flex and leveraged HTTPService, but I can not confirm this.
Currently, media files are not supported (MP3, FLV, MOV) but DOC, PDF, ZIP are. One feature they are looking to add is the abiltiy to do document conversion so that a PDF can be converted to a SWF or potentially a Word document to PDF, etc.
The second half of the presentation was about the upcoming Adobe Connect public service APIs and SDK. One note about the following content is that this feature set is still in development and may drastically change from what was presented.
First off, Adobe Connect is being rebuilt entirely in Flex (probably 3 since its still in development). One of the benefits of this is that a lot of the core classes and components that are being developed for connect will be released with the SDK. The focus of the redesign is to refactor the UI to move a lot of basic tools and options out of the pod module and move them to a more unified control panel/UI that allows easier access from any view.
One reason that Adobe wants to release an SDK is that there are a lot of basic requirements for Collaboration applications, such as Push/Pull of data, AV streams, user identity (who the users are), user presence (who has joined/left), permissions (who can control the presentation) and document/media sharing. Many of these tasks are often not thought of developers, are tedious to build or can become complex very quickly. Adobe wants to help streamline development by providing solutions to these tasks, that is where the SDK comes in.
The SDK is currently called CoCoMo and provides the foundation classes used in Adobe Connect. The SDK also includes component modules/pods that support webcam, mic, chat, etc. These components can then be extended to make custom versions or developers can take the foundation classes and build their own from the ground up.
As I mentioned there is a public API that is REST based that will allow developers to leverage the existing Adobe Connect network and build applications using this network. This is important because developers can build large scale collaboration applications and not worry about having to build a custom hosting solution to manage the server environments.
An interesting MXML tag that Adobe is working on for the Connect SDK is the <mx:connectSession> tag which handles connection to the servers. This tag points to a URL redirect that allows for automatic failover if the current server goes down, reconnection, connection identification management, etc. This tag also handle child creation only after the connection has been established. This makes development a lot easier because developers don’t have to worry about async management and load order. This functionality can be overridden if needed but it seems very straightforward and easy to use.
What Adobe really wants is Real Time Collaboration (RTC) out of the box. This includes: Async management, room management, user presence/management, disconnect/reconnect automation, state persistence(“late comer” data is managed for you), recording/playback, external addressability (new clients that talk to the service).
Check out the Adobe blog: blogs.adobe.com/collabmethods. They will use this as a forum to talk about the API / REST technology.
Currently the API and SDK is not available but the goal is to at first launch a free but throttled version and then roll out purchasable enterprise solutions.