how to design a hardware service use .net remoting

This is a simple document about Hardware service and purposes of resources lock issue.

About the hardware resources lock issue:

1.         Add a member named IsLocked to the Remote Service Object, and this lock member indicates that the Hardware resource is available or already be used by other client application. I think it is better if we add a resource queue to manage several Hardware resources in the future.

2.         Add a property named Timeout that specifies the time-out period to the Remote Service Object. I think the default is 5 minutes and the minimum allowed value is 0 minute, if 0 minute it means that the session should never timeout. If the client does not to communicate with the service within the time-out period, then the session ends, and the service tear down the state of the Hardware resource to clean up and free the memory.

Hardware service API overview:

 

IDevice

The interface of the devices

Acquire ()

Request a device from Hardware service by .net Remoting. If the device hardware is available return true, then initialize device resource and lock this device. Otherwise if the device hardware is busy or unconnected, return false.

Release ()

Called once when the device stops, unlock the device and clean up the resources used by the device.

a)         User requests a Signature Pad resource to Hardware Service.

b)         If the Signature Pad resource is not available, then pop message “Signature Pad is busy. Please try later.

c)         If the Signature Pad resource is available, then get the resource and lock it.

d)         User sign on Signature pad.

e)         If user never does anything within the time-out period, then session ends, pop message “Session timeout” to user, and Hardware service auto unlock the resource.

f)           After finished sign, User will unlock the device resources

你可能感兴趣的:(service)