A framework for creating observable web services
Abstract: In the intelligence community, intelligence is defined as the right information to the right party at the right time. This definition also applies to business intelligence used by government and financial institutions, patient information used by healthcare providers and meteorological and geological reports provided by research institutions and environmental agencies. Modern software development has to tackle the problems associated with building large and complex distributed systems that have to deliver business value in a reliable and timely fashion; even the best prediction has no value if it is delivered after the fact. It is imperative that the producers in a larger system are responsible for publishing their output to minimize the lead-time for consumers. Using regular web services, the consumer can only check for new data by polling the producer. In a system with many consumers, resources are wasted handling these status requests. Instead of the client interacting with service provider, the client should be reacting to it. The reactive programming model supports building systems with these properties. On the .NET platform, the Reactive Extensions library provides functionality for creating reactive applications by composing functions that operate on asynchronous event streams. The library provides powerful tools for building reactive programs, unfortunately it does not contain an abstraction for inter-process event streams that is needed for building distributed reactive systems. This thesis presents the design and implementation of a framework for creating and using observable web services as a means to bridge the inter-process gap that exist when building a system using Reactive Extensions. The solution is based on a conceptual modeled created by extending the web service architecture. The solution is implemented as a framework made up by two parts; a service component used for creating observable web services and client component that connects to an observable web service and generates code used for subscribing to events exposed by that service. The client subscription functionality integrates with Reactive Extensions, making it possible to build reactive and distributed systems. Integration tests are used to verify that the implementation fulfils the requirements specified for the conceptual model.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)