Showing posts with label Product Line. Show all posts
Showing posts with label Product Line. Show all posts

Wednesday, June 18, 2008

A Rendezvous of Content Adaptable Service and Product Line Modeling

Seo Jeong Lee1 and Soo Dong Kim2 -- PROFES 2005

They propose a service decision modeling technique for content adaptable applications

Michael Dertouzos [8] four fundamental forces envisioned in pervasive computing:
1- Natural Interaction
2- Automation
3- Individualized information access
4- Collaboration


Taxonomy of variability can be seen as below

The content adaptable service decision process
  1. Define System Architecture
    1. embrace contextual change
    2. embrace ad hoc composition
    3. recognize sharing as the default
  2. Define the variation points and variants
    1. Context is profile of network, device, user, service
    2. for each of the above profiles we may think of a variation point
  3. Define the dependencies between variation points
  4. Define the dependencies between variants
  5. Define the strategy of negotiation
    1. It depends on the domain, service, and application
    2. The decision value of the strategy should be one_of or in_the_range_of variant values.
  6. Select the adequate algorithm or module
    1. A QoS algorithm or something similar can be used to choose the require set of components and requirements based on the information that are fed to the system by the system designer.

Tuesday, June 17, 2008

Synergy between Software Product Line and Intelligent Mobile Middleware

Weishan Zhang and Klaus Marius Hanse 2007

current mobile middleware is designed based on "one-size-fits-all" paradigm lacking flexibility for optimization, customization, and adaptation.

They use the concepts of Frame-based techniques and its XVCL((XML based Variant Configuration Language) to define and configure points of variability.

[4] seems to be interesting to read in this paper.

They consider two major problems with the current mobile middleware applications:
  1. Monolithic structure: Specialized optimization and customization might be required
  2. Ontology evolution has not been addressed in the current ontology based middleware
They use service oriented architecture to connect different pieces of their services together. This actually imposes performance overhead to the system which may considerably degrade the execution and specification of their system.

  • Configuration is done as early as possible
  • Frame based ontology management and aggregation mechanism can run both on J2ME and J2SE
  • Ontology evolution is more than the management of the ontology itself
  • Flexible template capabilities for XVCL
They use racerpro as their main means of reasoning over the ontology.

Frame-based Ontology_Java Processing (FOJP)
  • Bridging the OWL ontologies to Java classes by providing mappings
  • Management and handling of ontology evolution
  • Managing the update of agent definition, including the agent belief, goals, actions, and plans
A context ontology is devided into two parts, the parts that change more frequently and the parts that stay more or less the same for a longer period of time. Then XVCL commands are used in a meta-ontology to bridge these concepts and provide an aggregation of all these classes of ontologies.

Ontology evolution involves two phases
  1. meta-ontology development
  2. other meta-artifacts for the mobile middleware including the code components

Sunday, March 16, 2008

Automating Product-Line Variant Selection for Mobile Devices

White, J., Schmidt, D. C., Wuchner, E., and Nechypurenko, A. 2007. Automating Product-Line Variant Selection for Mobile Devices. In Proceedings of the 11th international Software Product Line Conference (September 10 - 14, 2007). International Conference on Software Product Line. IEEE Computer Society, Washington, DC, 129-140. DOI= http://dx.doi.org/10.1109/SPLC.2007.12

PLAs are a promising approach to help developers manage the complexity of variability between mobile devices.

PLAs can be retargeted for different requirement sets by leveraging common capabilities, patterns, and architectural styles.

The design of a PLA is typically guided by the Scope, Commonality, and Variability (SCV) [7].

With the large array of device types and rapid development speed of new devices and capabilities, the system will not be able to know about all device types a priori.

The problems with the existing component-based and feature-based models is the following:
  • lack of ability to consider resource consumption constraints, such as the consumed memory
  • An appropriate architecture for how a device discovery service would be used to characterize a device's nonfunctional requirements (OS, RAM, etc.)
  • Fast feature selection speed to help with dynamic software delivery for mobile devices
Contributions by the paper:
  • Scatter’s graphical requirement and resource specification mechanisms and show how they facilitate the capture and analysis of a wide variety of requirement types
  • how Scatter transforms requirement specifications into a format that can be operated on by a constraint solver
  • the automated variant selection engine, based on a Constraint Logic Programming Finite Domain (CLP(FD)) solver
  • how PLA constraints impact variant selection time for a constraint-based variant selection engine.
  • PLA design rules that we have gleaned from our experiments that help to improve variant selection time when using a constraint-based approach.
The three key challenges associated with creating automated variant selector in pervasive environments
  • Unknown device signatures (to respond to devices with different capabilities)
  • Variant Cost Optimization (the cost associated with the selected variants should be examined before orchestration, selection, and composition of the variants)
  • Limited selection time ( The time for selecting the appropriate set of variants should be reasonable compared to the time that the user is going to be available in a context where s/he needs the type of service)
In traditional PLA, software developers decide about the set of variants to be selected, configured, and organized to work together.

In pervasive environments there are two problems with manual component selection:
  • The target device signatures are not known ahead of time
  • variant selection must be done on demand
  • The solution would be to capture a formal model of PLA's commonalities and variabilities so that automation can take place
  • A model to capture non-functional requirements to prevent deploying the components on systems whose functional requirements fail due to the inconsistencies with the underlying infrastructures
Scatter has the following features
  • graphical modeling tool that defines a domain specific modeling language to visually model the components of the interface, the dependencies and composition rules of components, the non functional requirements of each component
  • A compiler to convert the graphical notation to a Prolog knowledge base and a CSP
  • remote mechanism to a device discovery service that communicates the discovered devices to Scatter's variant selection engine
  • A variant selection engine based on Prolog constraint solver that selects a correct and optional variant for a product
A key challenge in pervasive environments is that variant selection must take into account requirements based on business and context data.

At one extreme, a tool can limit the types of constraints that can be solved to a small subset that is considered most important. At the other extreme, a tool can allow developers to capture any type of constraint, but provide no guarantee of having a way of deducing a variant that satisfies them.

The strategy is to allow the datasources to change while the types of constraints remain constant.

The type of constraints as they have classified:
  • Software Stack on the device
  • Resource consumption constraints
  • hardware capability constraints
  • business/location based constraint
What does this mean? The restriction imposed by the specification format are only on the types of comparisons that can be done and not on the data that the comparison is based upon.

SOAP-based Web service and a CORBA remoting mechanism for remotely communicating device characteristics as they are discovered. (Key, Value) pairs form the reports to Scatter. (How does the device know that it should provide the following information in order to get the component it is looking for? There should be another agent installed on the device, being able to report the information to the device).

A rule is specified that only allows a component to be deployed on a device, if for every local nonfunctional requirement on the component, a resource is present that satisfies the requirement.

A CSP is a problem that involves finding a labeling (a set of values) for a set of variables that adhere to a set of labeling rules (constraints).

A variant becomes a binary string where the ith position represents if the ith component is present.
  • Nonfunctional requirements. Components with mismatched nonfunctional requirements are completely eliminated from the chain of composition.
  • Prune using low-granularity requirements. Rely on the footprints that various classes of variants provide
  • Limit resource tightness. Filter out unessential resource consumptive components
  • Create Service classes: Annotating the components based on the class that they are required to be selected from. The more non0functional requirements, the quicker a decision maker can find the required components that it is looking for.
Resource constraints are a key requirement type in mobile devices with limited capabilities.

The whole approach is based on CONSTRAINT-BASED SOLVER AUTOMATION

A key challenge of automating product variant selection is debugging mistakes in the product line specification.