AppSpace Release V1.0

Rating: No reviews yet
Downloads: 272
Change Set: 48206
Released: Jun 14, 2010
Updated: Jul 9, 2010 by thomass
Dev status: Stable Help Icon

Recommended Download

Application XcoAppSpace Binaries
application, 1784K, uploaded Jul 9, 2010 - 149 downloads

Other Available Downloads

Example XcoAppSpace Usage Demos
example, 2460K, uploaded Jul 9, 2010 - 123 downloads

Release Notes

A lot of progress has happened since the last release, so we are happy to present you a new Version of the XcoAppSpace!
A year after our first release, the AppSpace really has matured a lot, and has proven to be stable in real-world scenarios, so we mark this as our first stable release!

Changes

  • Update to newest CCR version: The new AppSpace version uses the latest version of the CCR (from Robotics Studio 2008 R3), which is completely free!
  • Compact Framework version: The AppSpace is now available in a compact framework version. Despite of small differences, its functionality is the same as in the big version. For compatibility between the different frameworks, we wrote created a serializer which serializes messages based on the Json format. This allows serializing public classes and their public properties dynamically without further need for implementing any interfaces like ISerializable or attributes like MessageContract. See our usage demos for an example.
  • Sequential/Concurrent MessageTransferMode: With sequential message transfer, messages arrive in exactly the same order as they were posted, even when they are posted from a remote port. This allows sending messages which need to be processed in a certain order. Sequential transfer mode is the default for all remote ports, as well as for worker ports that are marked with XcoExclusive. For Worker Ports marked with XcoConcurrent the default transfer mode is concurrent - this mode allows the transport service to send multiple messages to the same target space at once, which can speed up message transfer if the transport service supports it.
  • Added new extension methods: We added some new extension methods to the Port and PortSet classes to make working with the AppSpace easier:
    • Send(): This method is similar to Post(), with the difference that sending happens synchronously (if the given port is a remote port), meaning the method only returns after the message has been sent successfully. Exceptions that occur during sending are directly thrown in this case. This makes it very easy to ensure that a message has been sent successfully, which was rather difficult before.
    • SendWithCausality(): Equal to PostWithCausality(), a causality is additionally transferred when sending the message.
    • Run()/Connect() extension methods for the XcoAppSpace class to make hosting of single ports even easier.
    • New Receive() variants for easier creation of response ports.
  • DisposeWorker renamed to StopWorker: Since this method doesn't really dispose the worker (there is no call to the dispose method), but only removes it from the space, as well as removes the port-to-method wiring, we felt that this renaming would make the method's meaning more clear.
  • Added wshttp support to the WCF transport service: You can now use the wcf transport service with wshttp binding. Since our transport service is connection oriented, you need to use encryption in this case. See our usages demos for an example.
  • Added a transport service for communication over Azure. See our usages demos for an example.
  • Added support for hosting an AppSpace instance in IIS. See our usages demos for an example. While the possibilities may still be limited, you can expect more IIS support in the near future!
  • Added space-internal Dispatcher for sending and receiving tasks. We experienced that, if all ccr threads are currently occupied, things like sending and receiving messages or connecting to a worker are becoming a problem, because the space-internal tasks relied on the same threads. We therefore decided to give every AppSpace a second Dispatcher which is used for internal tasks, so the AppSpace can stay responsive, even when under pressure.
  • Discovery Service: We added a simple discovery service for the AppSpace! It allows you to define a space instance as discovery server and with this connect to workers without knowing their address. See our usage demos for an example.

Reviews for this release

No reviews yet for this release.