Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
A framework for creating observable web services
KTH, School of Information and Communication Technology (ICT).
2015 (English)Independent thesis Advanced level (professional degree), 20 credits / 30 HE creditsStudent thesis
Abstract [en]

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.

Abstract [sv]

I underrättelsevärlden definieras en underrättelse som väsentlig information förmedlad till rätt instans vid rätt tidpunkt. Samma definition gäller för omvärldsanalys som används av regeringar och finansinstitut, patientinformation som används av vårdaktörer och metrologiska och geologiska rapporter som tillhandahålls av forskningsinstitut och miljöorganisationer.

Modern mjukvaruutveckling måste lösa problem associerade med att bygga stora, komplexa och distribuerade system som på ett tillförlitligt sätt ska leverera företagsnytta i rätt tid; även den bästa förutsägelsen är utan värde om den levereras för sent. Det är absolut nödvändigt producenter i ett större system ansvarar för att publicera sitt data så att konsumenter kan agera med så lite ledtid som möjligt. Vid användande av vanliga webtjänster måste klienten aktivt fråga om ny data finns tillgänglig. I ett system med många användare slösas resurser på att hantera statusefterfrågningar. Istället för att klienten interagerar interaktivt med tjänsten, borde den istället reagera reaktivt. Med den reaktiva programmeringsmodellen stöds systemkonstruktion med dessa egenskaper. På .NET-plattformen tillhandahåller kodbiblioteket Reactive Extensions funktionalitet för att skapa reaktiva applikationer genom skapandet av funktioner som arbetar med asynkrona händelseströmmar. Biblioteket tillhandahåller kraftfulla verktyg för utformningen av reaktiva program, dock innehåller den inte en abstraktion för arbete med händelseströmmar som rör sig mellan olika processer, en nödvändighet för skapandet av distribuerade reaktiva system.

Denna uppsats presenterar den bakomliggande designen och implementationen av ett ramverk för skapandet och användandet av observerbara webtjänster vars syfte är att brygga händelseströmmar mellan olika processer. Lösningen är baserad på en konceptuell modell som bygger på arkitekturen för webbtjänster. Den är implementerad som ett ramverk som består av två delar; en tjänstekomponent som används för att skapa observerbara webbtjänster och klientkomponent som ansluter till en observerbar webbtjänst och genererar kod som används för att prenumerera på händelser som exponeras av denna tjänst. Prenumerationsfunktionaliteten är skapad för att fungera med Reactive Extensions och gör det möjligt att bygga reaktiva och distribuerade system. Integrationstest används för att kontrollera att ramverket uppfyller de krav som anges för den konceptuella modellen.

Place, publisher, year, edition, pages
2015. , 40 p.
Series
TRITA-ICT-EX, 2015:150
Keyword [en]
Functional programming, Reactive Extensions, API design
Keyword [sv]
Funktionell programmering, Reactive Extensions, API-design
National Category
Computer and Information Science
Identifiers
URN: urn:nbn:se:kth:diva-177576OAI: oai:DiVA.org:kth-177576DiVA: diva2:873379
Examiners
Available from: 2015-11-25 Created: 2015-11-24 Last updated: 2017-06-15Bibliographically approved

Open Access in DiVA

fulltext(429 kB)13 downloads
File information
File name FULLTEXT01.pdfFile size 429 kBChecksum SHA-512
faecebd590ae1e124816ef353ea86e2c2446fb3132cc7c9473a91d730adbefd2b71ce51079206f70f55dd1a31afb53ffe46176713d8cc6a67d3211b8fc8a72eb
Type fulltextMimetype application/pdf

By organisation
School of Information and Communication Technology (ICT)
Computer and Information Science

Search outside of DiVA

GoogleGoogle Scholar
Total: 13 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 73 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf