240 likes | 249 Views
This paper discusses the challenges in developing context-aware web services and introduces ContextServ, a platform for rapid and flexible development of such services. It explores the architecture, context provisioning, and CAS modeling using ContextUML. An example CAS, the Attraction Search Service, is also presented.
E N D
ContextServ: A Platform for Rapid and Flexible Development of Context-Aware Web Services Quan Z. Sheng, Sam Pohlenz, Jian Yu, Hoi S. Wong, Anne H.H. Ngu, and Zakaria Maamar School of Computer Science The University of Adelaide ContextServ at ICSE 2009
Agenda • Context-Aware Web Services (CASs) • Challenges in Developing CASs • ContextServ Platform • Architecture • Context Provisioning • CAS Modeling • Model Transformation • Example CASs ContextServ at ICSE 2009
Context-Aware Web Services • Web services: a major technology to implement loosely-coupled business processes and perform application integration • A flourishing research and development area in the last decade • Context awareness: the capability of being aware of its physical environment or situation (context) and responding proactively and intelligently based on such awareness • One of the most important trends in computing that holds the potential to make our daily lives more productive, convenient, and enjoyable • Context-aware Web service (CAS): make Web services more personalized, adaptive, and intelligent • Vision of “The Future Internet”: an Internet of services where services are ubiquitous (http://www.future-internet.eu/) ContextServ at ICSE 2009
Attraction Search Service:An Example CAS Recommend attractions according to user’s location, weather, language: 1) If weather is bad (harsh weather): indoor attractions 2) If description is not in preferred lang.: translate to the preferred lang. Subscribe personal preferences (e.g., preferred attractions, language) Harsh weather is defined as: (temperature>40°C or temperature<5°C) or rainlikelihood>80% Attractions Search Service (ASS) ContextServ at ICSE 2009
To Date, CASs Are Still Hard to Build… • Current Web service standards (e.g., SOAP, UDDI, WSDL) are not sufficient for describing and handling context information • Context provisioning is not trivial • Heterogeneity of context providers • Quality of context • Dynamic context environments (e.g., unavailability, quality change) • Context aggregation • Lack of generic approach for formalizing the CAS development • Contexts management is implemented in an ad-hoc manner • Evolution of Web service platforms Developing CASs is cumbersome, error-prone, and time-consuming, especially when these CASs are complex. ContextServ at ICSE 2009
ContextServ Project • ContextServ is a research project aiming at rapid and flexible development of context-aware Web services (CASs) • Sponsored by Australian Research Council (ARC) • ContextServ provides a platform for model-driven development of CASs • Offers design flexibility by separating the modeling of context and context-awareness from service components • Uses high-level, visual modeling language (ContextUML) • Offers a set of automated tools for generating and deploying executable implementations of CASs • Eases development and maintenance of CASs; reduces development costs ContextServ at ICSE 2009
Model-Driven Development Platform Independent Models Model Transformation Target Executable Platforms Transformer Implementation of platform 1 Models Implementation of platform 2 Transformation knowledge Implementation of platform 3 Software systems are specified in platform independent models (PIMs) by adopting high-level abstractions (languages) PIMs are then (semi)automatically transformed into platform specific models (PSMs) using transformation tools); A PIM can be transformed into different executable platforms (i.e., PSMs) Improves the productivity and quality; eases the system maintenance and evolution; enhances the portability. ContextServ at ICSE 2009
ContextUML Service Modeling Context Modeling AtomicContext Service CompositeContext MechanismAssignment 1 * SourceAssignment 1..* * CAMechanism Operation Context CAObject ContextSource * 1..* * 1..* * 1..* input output 0..1 0..1 Message ContextBinding ContextTriggering ContextService Context Community * * part * 0..* 1..* 1..* * member Part ContextConstraint Action Context-Awareness Modeling ContextServ at ICSE 2009 ContextUML: A UML-Based Modeling Language for Model-Driven Context-Aware Web Service Development. Q.Z.Sheng and B. Benatallah. ICMB05
ContextServ Architecture Transform to WSDL WSDL specification of service Publish service to registry Web service registry (UDDI) Deploy service Web server CAS interface Search service Specify service interface Invoke service Bind to service implementation Execution engine (e.g., BPWS4J) Service consumer Service Developer Specify context-aware Web service in ContextUML Configure and run service at the engine Specify context provisioning Transform service model to executable specification Context Executable specification of service (e.g., BPEL) community composition ContextUML model Context Manager RubyMDA Transformer ContextUML Modeler ContextServ at ICSE 2009 3 1 2
1. Context Management AtomicContext CompositeContext * • ContextServ distinguishes between atomic contexts and composite contexts • Atomic contexts: low-level contexts, directly provided by context sources • e.g., temperature, rainlikelihood • Composite contexts: high-level contexts, no direct providers, aggregate multiple atomic or composite contexts • e.g., harshWeather • Improve the modeling power of context information to CAS designers SourceAssignment * Context ContextSource … * 1..* ContextService Context Community * * member • ContextServ exploits context community to address the heterogeneous and dynamic context information • Dynamic provisioning of optimal context information (QoC based selection) ContextServ at ICSE 2009
Interface ContextServ at ICSE 2009
Specify Atomic Context Specify details of the context provider ContextServ at ICSE 2009
Specify Composite Context Composite contexts are specified using statechart, which are then translated to SCXML, a markup language for statechart, and executed in a SCXML execution engine such as Commons SCXML ContextServ at ICSE 2009
Specify Context Community Context providers register to a context community (next slide) Dynamic and optimal context provider selection: We identify a set of QoC (Quality of Context) attributes such as precision, refresh-rate, trustworthiness etc The selection is based on a utility function calculate the value scale the value (for positive context) calculate the value rr(provider) scale the value (for negative context) ContextServ at ICSE 2009
Context Provider Registration specify member details specify supported contexts ContextServ at ICSE 2009
2. ContextUML Modeler • ContextServ relies on ContextUML, a UML-based modeling language that provides high-level, visual constructs for specifying CASs • ContextUML abstracts two context awareness mechanisms, context binding and context triggering • Context binding: automatic binding of contexts to context-aware objects • Mapping between a context and context-aware object (e.g., input parameter of the service) • Context triggering: contextual adaptation where services can be automatically executed or modified based on context information • If weather is harsh, only recommend indoor attractions MechanismAssignment CAMechanism CAObject * 1..* * 1..* ContextBinding ContextTriggering * * 1..* 1..* ContextConstraint Action ContextServ at ICSE 2009
ContextUML diagram ContextUML abstracts The ContextUML modeler offers a visual interface for specifying CASs using ContextUML. We extended ArgoUML (argouml.tigris.org) by developing a new ContextUML diagram, which implements all the abstract syntax of ContextUML. Services represented in ContextUML diagrams are exported as XMI files for later processing. ContextServ at ICSE 2009
3. Transformation and Deployment • ContextServ automatically transforms CASs specified in ContextUML to executable Web service codes in BPEL, which is realized by a transformer • The transformer was developed in Ruby programming language (RubyGems 1.0.1, http://rubygems.org/), thus the name of RubyMDA transformer • A WSDL is also automatically generated • CASs are then deployed to the JBoss Application Server, which includes a BPEL execution engine, jBPM-BPEL1.1 Output Generator Service.bpel Service.wsdl Input Transformer CAS:BPEL build.xml serviceImpl.java bpel-definition.xml bpel-application.xml wscompile.xml web.xml webservices.xml XML2UML UML2CAS XMI CAS:JBoss ContextServ at ICSE 2009
Transformation Rules • RubyMDA transformer exploits the model transformation rules, which are mappings between ContextUML stereotypes and BPEL elements, for the transformation ContextServ at ICSE 2009
Transformation Rules in XML Builder For BPEL generation For WSDL generation ContextServ at ICSE 2009
Generated BPEL code Generated WSDL code ContextServ at ICSE 2009
CASs Developed from ContextServ A movie is available which captures the whole process in developing this CAS using ContextServ platform CAS applications are available online: http://www.cs.adelaide.edu.au/~contextserv/ software.html ContextServ at ICSE 2009
Thank you for your interest to ContextServ Project • More information on ContextServ can be found from http://www.cs.adelaide.edu.au/~contextserv • Other related research information can be found from http://www.cs.adelaide.edu.au/~qsheng School of Computer Science The University of Adelaide ContextServ at ICSE 2009