Welcome!

Microservices Expo Authors: Liz McMillan, Elizabeth White, Pat Romanski, Stackify Blog, Andreas Grabner

Related Topics: Microservices Expo, Industrial IoT

Microservices Expo: Article

Inducing Behavioral Adaptations Within SOA and Web Services

Gaining control over dynamic changes in Web services

Web services have evolved from plain application-integration enablers to value-added stand-alone functionality providers such as getting a quote to a comprehensive business function like processing orders. Enterprises are exploiting this new revenue model by offering such business functions as services on usage basis. Information sharing instances such as Amazon's e-commerce services have helped in the creation of new powerful solutions using business functions as services.

Why Do We Need Adaptation in Web Services?
In the vision of e-business, it becomes important to address the dynamic nature of business environments. As third parties access more and more business functions, the richness of Web services offered should be adequately addressed. With Web services having to participate and cooperate in a networked system, they may need to frequently join or leave a process, or at times may need to change their preferences by tailoring or adding functionalities. Such unanticipated changes as demanded by businesses and the associated complexity necessitate an adaptable nature to web services where specific features can be introduced or deactivated in a planned manner.

The adaptation of Web services with regards to constant change in the business has to deal with the behavior of the service. Some of the existing approaches of adaptation primarily concentrate on transformation of the content and much less effort has been made towards behavioral adaptation. Much as object-oriented programming introduced encapsulation and inheritance, the behavioral adaptation should also introduce features in a modular way. However in contrast to the object-oriented way, certain significant issues need to be addressed:

  • Context-aware provisioning, which is necessary because Web services will be involved in widely distributed and heterogeneous solutions
  • Diversified personalization, for improving quality of service and delivering user-centric functionality
  • Nondisruptive feature insertion/release, to facilitate the high availability requirement
A scenario of a loan agent providing a best possible loan offer is constructed to explain the aforementioned issues. This example will be used later on in the article to illustrate certain adaptation scenarios. A process as shown in Figure 1 is initiated to select the best loan offered by any participating loan service to meet specific requirements as stated by the consumer. In the real world, these loan services can be considered to be the endpoints of various financial institutions. The process would also look up the consumer's credit score from a trusted credit rating service.

Aren't Business Rules Sufficient?
Even though business rules also define or constrain the behavior of services, they are primarily intended to enforce certain explicit motivations based on contextual data. On the other hand, Web services in e-business scenarios would have to deal with proactive and reactive adaptations. Such adaptations have to be non-enforcing and yet facilitate the requestor's ability to choose the behavior. To understand this better consider a simple personal loan offering service. The bank may decide to run a promotion for a specific season by virtue of which a business rule could be added to the service so that loan requests with credit scores in the range of 60 to 75 on a 100-point scale would reduce the interest rate by 0.25 percent. However converting the offered personal loan to a line of credit having variable interest rates would involve changes in the service logic itself. This wouldn't be a feasible option because it has to be made available only for a specific time period. Moreover, because requestors have different preferences some might not opt for this conversion while others might. Using business rules, such adaptations would get even more complex if the preferences are negotiated before the request is made to the service.

Adaptations May Not Be Just for Functional Features
The behavior of Web services as in the case of any computational system would be made up of certain functional and nonfunctional features. The sole purpose of the nonfunctional features would be to enable services to function for various execution conditions through changes in the behavior of the service without altering the core service logic. A distinguishing factor of such adaptations is that often the service itself might be unaware of the existence of nonfunctional features. To put it another way: the nonfunctional features are not configured at design time but are categorized under operational constraints.

The operational constraints would essentially relate to the communication characteristics between the interacting services. There are various WS-* standards that are trying to address the nonfunctional requirements of Web services. There are also some competing standards for similar functionality. For example, to tackle reliable, guaranteed message delivery, a group consisting of Sun, Fujistu, Oracle, etc. came out with WS-Reliability and a second group consisting of IBM, BEA Systems, Microsoft, and TIBCO came up with the WS-ReliableMessaging specification. Though both provide mechanisms to ensure basic delivery assurance, the difference between them is in how they incorporate other standards such as WS-Security, WS-Addressing, and WS-Policy. On the contrary, there are some specific widely accepted and employed standards for a given problem area that have overlapping features. For instance, in the case of security, there are standards such as Security Assertion Markup Language (SAML) as well as WS-Security that are both widely used to provide security cover to Web services. Because this is the case with the ever-growing stack of WS-* standards, participants within a composition have many options to choose from. Even with such disarray within the stack, some of the reasons that participants differ in their choices could be the pace of adoption of the standard, or the preference for a specific platform/tool choice made during the service development, etc.

Essential Considerations for Adaptation
The behavioral adaptation is to be considered in the context of interaction between the service provider and the requestor. To appropriately customize Web services, the contextual information has to be processed so that the intended interaction is achieved. In order to do so the following considerations are essential for leading to behavioral adaptations within Web services.

Variation Points or Hotspots
The unanticipated introduction of new features has to coexist with the base functionality offered by the Web service. It is also possible that the adaptations would have to intervene between the basic flows. Web services planning for such adaptations will have to identify the variation points or hotspots where new features can be induced. The identification of such hotspots is very crucial and decides the degree of flexibility that a Web service can offer. Another important aspect of hotspots is their role in the weaving of the adaptations. This facilitates the ability of the Web service to truly cater to and take part in a wide variety of solutions.

Proactive and Reactive Nature
Proactivity in the adaptation could be accomplished by deciding on the service behavior even before the change or before the invocation of the service. On the other hand, reactivity is the consequence of the change after the service invocation. For example, the credit reporting service could exhibit a proactive behavior in providing a simple report that contains the credit score and summary or a complete report that details public records, past dues, payment, collections, open accounts, inquires, etc. Reactive behavior may be accomplished by providing the credit score on different scales like 400-900 or 100 points.

Late Binding
The undetermined quality of adaptations necessitates late binding. Without having late binding, the service needs to be as abstract as possible and has to extend itself to add the features indented for adaptation. This may not be feasible and may lead to chaos in managing requirements, which leads to the cluttering of features.

Negotiations
Negotiations provide the property of compatibility and replaceability to the interactions between the requestor and the provider. The constantly changing preferences could be accommodated through negotiations so that both requestor and provider can agree on the best possible terms for information exchange. For example, the way in which security credentials are passed can be negotiated. To ensure his confidentiality, the service requestor can opt for a lengthier encryption key and similarly the service provider can specify various options for the encryption key length from which the requestor can choose.

More Stories By Naveen Kulkarni

Naveen Kulkarni specializes in Web services and service-oriented architecture. He currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. He has published papers in international conferences such as the IEEE International Conference of Web Services and has spoken at various industry forums exclusively on Web services. His interests include enterprise adoption of services, legacy modernization, and capacity planning, as well as QoS in Web services ecology.

More Stories By Manivannan Gopalan

Manivannan Gopalan specializes in legacy systems, legacy migration to SOA, and Web services. He currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. He has published papers in international conferences such as the IEEE International Conference of Web Services.

More Stories By Geo Philips Kuravakal

Geo Philips Kuravakal currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. He is currently involved in the development of an enterprise Web service integration framework. His primary area of interest is the Semantic Web and its applicability to Web services, along with newer programming techniques such as AJAX.

More Stories By Lipika Sahoo

Lipika Sahoo currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. Her core area of work involves dynamic adaptability and management of Web services. She is currently involved in various research activities within the group relating to MDA and AOSD.

More Stories By Sunny Saxena

Sunny Saxena currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. His interests range from Web service security platforms to aspect-oriented development models.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Microservices Articles
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...