Proactive Future Internet “Smart Semantic Middleware for Overlay Architecture” Resource Agent “Device” Resource Agent “Expert” Resource Agent S-APL University of Jyväskylä Industrial Ontologies Group “Service” Vagan Terziyan Dmytro Zhovtobrykh Artem Katasonov ICNS-2009, Valencia, Spain 22 April, 2009 Web of Humans (Social Web, Web 2.0) Human Communities Facilitates Human-toHuman interaction Web of Things Machines, devices, computers, etc. Facilitates Machineto-Machine interaction Web of Services Software and Services Facilitates Softwareto-Software interaction Web of Knowledge (Semantic Web, Web 3.0) Knowledge and Data Collections Facilitates Knowledge-toKnowledge interaction Web of Intelligence (Distributed AI, Web 4.0) Intelligent Agents and Applications Web of intelligent entities (intelligence services), browseable, searchable, composable, selfmanaged, dynamic, mobile … Facilitates Intelligenceto-Intelligence interaction GUN Concept GUN – Global Understanding eNvironment GUN = Global Environment + Global Understanding = Proactive Self-Managed Semantic Web of Everything Global Understanding Environment (GUN) GUN can be considered as a kind of Ubiquitous Eco-System for Ubiquitous Society – the world in which people and other intelligent entities (ubiquitous devices, services, software, organizations, etc) “live” together and have equal opportunities (specified by policies) in mutual understanding, mutual service provisioning and mutual usability. Human-to-Human Human-to-Machine Machine-to-Human Machine-to-Machine Software-to-Human Software-to-Machine Software-to-Software … Human-to-Software Agent-to-Agent “Semantic Wave” (Web X.0) and GUN We may add here: Web 5.0 will come finally and it is about connecting models in a “Global Understanding Environment” (GUN), which will be such proactive, selfmanaged evolutionary Semantic Web of Things, People and Abstractions where all kinds of entities can understand, interact, serve, develop and learn from each other. [Vagan Terziyan] “The semantic wave embraces four stages of internet growth: Web 1.0, was about connecting information ... Web 2.0 is about connecting people. Web 3.0, is starting now… and it is about … connecting knowledge… Web 4.0 will come later … and it is about connecting intelligences in a ubiquitous web where both people and things can reason and communicate together.” [“Semantic Wave 2008” , Mills Davis ] What is UBIWARE ? (1) • UBIWARE (important step towards GUN) is a generic, domain independent middleware platform, which is meant to be able to provide the following support: integration; interoperability; proactivity; communication, observation, negotiation, coordination and collaboration; automation, design and installation; lifecycle management, execution monitoring, diagnostics, maintenance; self-descriptiveness, semantic search, discovery, sharing, reuse; planning and decision-making; adaptation; learning, mining, knowledge discovery; context-awareness; self-management including self-configuration; security, privacy and trust; etc... • …for … (see next slide) What is UBIWARE ? (2) • … for the following resources, systems and components (including their groups): data information and knowledge: data, metadata, knowledge, logic, ontologies; software and services: software components, software agents, software and information systems, services including Web-services; humans: users, operators, experts, administration, customers, patients, doctors, etc; hardware: machines, devices, networks, embedded electronics, RFID; organizations; intangibles: human and organizational capital, innovations, property rights, trust and reputation, brand recognition, etc.; processes: behaviors, technologies and business models; interfaces; intelligence: reasoning, inference, planning, learning, data-mining, knowledge discovery, etc… engines; ecosystems: environments, smart spaces, other middleware and CSCW tools; abstractions and mathematical models; etc. What is UBIWARE (in short) • UBIWARE is a tool to support: design and installation of…, autonomic operation of… interoperability and among… • … complex, heterogeneous, open, dynamic and self-configurable distributed industrial systems;… • … and to provide following services for system components: adaptation; automation; centralized or P2P organization; coordination, collaboration, interoperability and negotiation; self-awareness, communication and observation; data and process integration; (semantic) discovery, sharing and reuse. UBIWARE Project • Due to heterogeneity of provided services and supported components, UBIWARE is based on integration of several technologies: Semantic Web, Distributed Artificial Intelligence and Agent Technologies, Ubiquitous Computing, SOA (ServiceOriented Architecture), Web X.0, P2P and related concepts. • The research and design on UBIWARE is started by Industrial Ontologies Group within UBIWARE project: “Smart Semantic Middleware for Ubiquitous Computing” (June 2007 – May 2010) funded by Tekes and industrial companies. • Project web page: http://www.cs.jyu.fi/ai/OntoGroup/UBIWARE_details.htm Why Semantic Web? (Ora Lassila) • “Semantic Web is about to reach its full potential and it would be too costly for companies not to invest to it…” (Ora Lassila, Nokia Research Center (Boston), IASW-2005, Jyvaskyla) Why Agents? • Growing complexity of computer systems and networks used in industry need for new approaches to manage and control them • IBM vision: Autonomic computing – Self-Management (includes self-configuration, self-optimization, selfprotection, self-healing) • Ubiquitous computing, “Internet of Things” huge numbers of heterogeneous devices are interconnected • “nightmare of pervasive computing” when almost impossible to centrally manage the complexity of interactions, neither even to anticipate and design it. • We believe that self-manageability of a complex system requires its components to be autonomous themselves, i.e. be realised as agents. • Agent-based approach to SE is also considered to be facilitating the design of complex systems Challenges and Solutions • Very heterogeneous resources • Different nature (devices, Web services, humans). • Different organizations. • Not always the exact same domain. • Data-level heterogeneity • Calls for the Semantic Technology. • Protocol-level heterogeneity • GUN approach through the Agent Technology. • Each resource has a representative – software agent (not necessarily intelligent or even fully autonomous, but at least able to act as a programmable proxy). • Interactions among resources go through their agents. Challenges and Solutions (2) • Coordination • When considering physical devices (e.g. future Internet components), in contrast to purely digital world of Web services, coordination is critical. • Coordination is about resources planning their activities while attempting to avoid negative interactions (e.g. collision over a non-shareable resource) as well as exploit positive interactions (re-using each other results). • Enabling coordination among heterogeneous resources is even harder problem than data-level or protocol-level heterogeneity – communication about actions. • GUN approaches through semantic programming • Agents are programmed in RDF-based Semantic Agent Programming Language (S-APL). • Agents communicate their action plans in S-APL as well. Current UBIWARE Agent Architecture S-APL S-APL – Semantic Agent Programming Language (RDF-based) S-APL – is a hybrid of semantics (metadata / ontologies/ rules) specification languages, semantic reasoners, and agent programming languages. It integrates the semantic description of domain resources with the semantic prescription of the agents' behaviors http://users.jyu.fi/~akataso/sapl.html UBIWARE Agent: Possible Future Architecture RBE – Reusable Behavior Engine SoftSoul “Life” Behavior HardSoul RAB – Genome is part of semantically marked-up agent configuration settings, which can serve as a tool for agent evolution: inheritance crossover and mutation “Visible” to other agents through observation RBE RBE RBE (facts, rules, policies, plans) SoftBody RAB Shared RABs Beliefs RAB Shared Beliefs SoftMind HardMind RAB Shared RBEs RBE Meta-Beliefs RAB contained, self-described, semantically marked-up proactive agent capability (agent-driven ontonut), which can be “seen”, discovered, exchanged, composed and “executed” (internally or remotely) across the agent platform in a task-driven way and which can perform social utility-based behavior (GENOME) Ontobility is self- Meta-Beliefs (preferences) Shared Configuration Reusable Atomic Behavior HardBody Shared Hardware Environment May be an agent GENI – Next Generation Internet ? • GENI - Global Environment for Networking Investigations (proposed 25 August 2005) • The U.S. National Science Foundation (NSF) has proposed a next-generation Internet with built-in security and functionality that connects all kinds of devices, with researchers challenging the government agency to look at the Internet as a "clean slate.“ • GENI is a programmable, heterogeneous, networked system. It will consist of a collection of physical networking components, including links, forwarders, storage and processor clusters, and wireless subnets. These components will be programmable which is radically different from today's Internet architecture and protocols. GENI is equally likely to result in alternative protocols and architectures running inside the network. GENI Programmable Components Future Internet Management • GENI management framework supposes overlay network architecture, where each application is run in a slice of the network. Overlay networks will also improve Internet routing and enable routing messages to destinations not specified by IP addresses. • The most important attribute of the management framework is its support for autonomous and decentralized control. Individual building blocks will be largely autonomous and self-managing and will be included in a slice by invoking a well-defined interface adapter on each. Collections of building blocks can be managed independently of each other. • The management framework also includes a set of independent services that will be used to embed a slice in a particular set of resources; monitor the behavior of both slices and building block components; collect, aggregate, and archive measurement data; and so on. [GENI Development Team] Active networks, overlay networks and declarative networking • Active networks (http://www.sds.lcs.mit.edu/darpaactivenet) allow a user injecting customized programs into the nodes of the network. Active architectures enable a massive increase in the complexity and customization of the computation that is performed within the network. • Any widely-distributed system needs to track its participating nodes, and be able to send messages among those nodes. This facility is often called an overlay network, since it provides an application with customized networking functionality (naming, topology, routing) that runs as a layer over traditional IP networking. • Declarative networking: (a) declarative language: “ask for what you want, not how to implement it” ; (b) declarative specifications of networks, compiled to distributed dataflows; (c) runtime engine to execute distributed dataflows (http://p2.cs.berkeley.edu/ ) Perfect target for GUN and UBIWARE ? • If the future internet is really going to be a complex distributed self-managed system with decentralized control consisting of heterogeneous, autonomic and programmable components, as GENI initiative suggests, then GUN / UBIWARE approach (with S-APL language for declarative networking) might be the right enabling technology for that. PROFI: Agent-Driven Middleware for Overlay Networks Languages for Declarative Networking • Declarative languages are known to encourage programmers to focus on program outcomes (what a program should achieve) rather than implementation (how the program works). Recently declarative approaches have proven useful in a number of new domains, including program analysis, trust management, and distributed system diagnosis and debugging. Of particular interest is recent work on declarative networking, which presents declarative approaches for protocol specification and overlay network implementation. Declarative logic languages have been promoted for their clean and compact specifications, which can lead to code that is significantly easier to specify, adapt, debug, and analyze than traditional procedural code. Snlog is a dialect of Datalog, a well known deductive database query language. A typical user (whether an end-user, service implementer or system builder) writes only a short declarative specification using Snlog. The main language constructs are predicates, tuples, facts and rules. Snlog programs consist of period-terminated statements. D. Chu, L. Popa, A. Tavakoli, J.M. Hellerstein, P. Levis, S. Shenker, I. Stoica, The Design and Implementation of a Declarative Sensor Network System, SenSys’07, November 6–9, 2007, Sydney, Australia Declarative network messages Dataflow Dataflow messages Dataflow Dataflow messages Dataflow Distributed recursive query Dataflow Traditional Networks Network protocol Network messages Declarative Networks Recursive Query Execution Distributed Dataflow http://p2.cs.berkeley.edu/ Approach: Declarative Networking • A declarative framework for networks: language: “ask for what you want, not how to implement it” Declarative specifications of networks, compiled to distributed dataflows Runtime engine to execute distributed dataflows Declarative • Observation: Recursive queries are a natural fit for routing http://p2.cs.berkeley.edu/ Semantic Agent Programming Language (S-APL) • Need to be able to ontologically describe not only the domain, but the agents themselves. • Our approach: RDF-based (more precisely, Notation 3) APL. • In a nutshell: Let’s start treating agents’ programs as data If it is data, let’s use the semantic approach (advantages are wellknown) Use Notation 3 (extension of RDF by Tim Berners-Lee) to overcome limitations of basic RDF. S-APL • It is a hybrid of semantic reasoners like CWM and agent programming languages like AgentSpeak, AFAPL. • From APLs point of view: S-APL is a language that provides all the features (and more) as normal APLs, while being RDF based and thus providing advantages of semantic data model and reasoning. • From semantic reasoning point of view: S-APL is CWM extended with common APL features such as: Beliefs-Desires-Intentions (BDI) architecture, i.e. ability to describe goals and commitments - data items presence of which leads to some executable behavior, and Ability to link to sensors and actuators implemented in a procedural language, namely Java. Options for S-APL use • The developers of a specific application can use S-APL in different ways: Semantic Reasoning. S-APL rules operating on SAPL semantic data. Semantic Data. RABs (i.e. Java components) operating on S-APL semantic data. Workflow management. RABs operating on Java blackboard objects, with S-APL used only as workflow management tool, specifying what RABs are engaged and when. Any combination of the three options above. S-APL data model G _C1 accordingTo John _C1 _C2 implies _C3 _C2 _C3 Time is Summer Sun is Shining S-APL: simple beliefs • Simple belief :John :Loves :Mary • Complex belief {:John :Loves :Mary} :accordingTo :Bill • Goal / desire: gb:I gb:want {:John :Loves :Mary} The prefix gb: is used here to denote the ontology of S-APL. In S-APL, making a statement has the meaning of adding it to the agent’s beliefs. S-APL: Rules • Conditional commitment: {:John :loves ?x} => {...} => is the shorthand for sapl:implies. If the left side of => is truth (beliefs are connected with AND), the right side is copied into G. The commitment is removed after that (as fulfilled). Otherwise, it stays in beliefs and checked again and again until becomes true. • Persistent behavior rule (not removed upon execution) { {...} => {...} } sapl:is sapl:Rule • Conditional action {...} -> {...}; sapl:else {} -> is the shorthand for sapl:impliesNow. Such a condition will be checked only once and will be removed even if the condition was false. Adding gb:else block defines what should be added to beliefs if the condition was false. S-APL: Rules (2) • Exclusive condition: {:John :Loves ?x . sapl:I sapl:doNotBelieve {?x .. ..} } => {...} If the object of sapl:doNotBelieve matches G, the left side of => is false. If there are several sapl:doNotBelieve, they are connected with OR • Commitment with a guard condition: { {...} => {...} } sapl:is sapl:true ; sapl:existsWhile {...} If the object of sapl:existsWhile is false, its subject is removed – in this case, the commitment is dropped. S-APL as communication content language • We use S-APL also as inter-agent communication content language: One agent sends a query as sapl:I sapl:want { {sapl:You sapl:answer {..query..} }} , the other answers with the matching part of its beliefs One agent requests another agent to perform an action plan by sending the plan with sapl:I sapl:want { sapl:You sapl:do {..plan..} } • Such interaction is easily programmed with S-APL itself. The platform includes a set of “standard” models: Listener, Believer, Informer and Follower. Conclusion • The primary point behind the PROFI approach is a declarative networking overlay architecture comprising programmable network components and associated agent-based semantic management system. This particular middleware solution adds to overall network system flexibility, openness, context-awareness and manageability.