Presentation is loading. Please wait.

Presentation is loading. Please wait.

Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 1 Software Engineering Challenges: of Complex Self- Organising Systems Prof. A. Taleb-Bendiab.

Similar presentations


Presentation on theme: "Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 1 Software Engineering Challenges: of Complex Self- Organising Systems Prof. A. Taleb-Bendiab."— Presentation transcript:

1 Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 1 Software Engineering Challenges: of Complex Self- Organising Systems Prof. A. Taleb-Bendiab School of Computing Liverpool John Moores University email: a.talebbendiab@livjm.ac.uk http://www.cms.livjm.ac.uk/taleb a.talebbendiab@livjm.ac.uk Software Engineering Challenges: of Complex Self- Organising Systems Prof. A. Taleb-Bendiab School of Computing Liverpool John Moores University email: a.talebbendiab@livjm.ac.uk http://www.cms.livjm.ac.uk/taleb a.talebbendiab@livjm.ac.uk

2 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 2Outline Drivers for a paradigm shift Drivers for a paradigm shift Autonomic Grid Computing Autonomic Grid Computing Autonomic Grid Computing Autonomic Grid Computing Autonomic Computing Autonomic Computing Autonomic Computing Autonomic Computing Setting the Scene for Setting the Scene for Drivers for a paradigm shift Drivers for a paradigm shift Quest for a new theoretical framework Quest for a new theoretical framework Recent b io-inspired initiatives Recent b io-inspired initiatives SAS, DASADA, SRS and ANTS SAS, DASADA, SRS and ANTS Understanding autonomic systems engineering Understanding autonomic systems engineering Definitions and state of the art Definitions and state of the art Challenges and Open Research Questions Challenges and Open Research Questions Complexity Networks Complexity Networks Self-organising systems Self-organising systems Complex random networks Complex random networks Conclusions Conclusions

3 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 3 Emerging Networked Landscapes

4 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 4 Drivers for a Paradigm Shift #2 Modern Expectations Modern Expectations High-Availability -- 24x7 delivery near-100% availability is becoming mandatory for e-commerce, enterprise apps, online services, ISPs near-100% availability is becoming mandatory for e-commerce, enterprise apps, online services, ISPs Change Support rapid deployment of new hw/sw, services, etc Maintainability Provide flexible systems admin. env. reduce system administrators tasks, complexity and cost Just-in-time scalability Allow flexible system up scaling without sacrificing performance, availability or maintainability evolutionary growth and adaptation Survivability Full malleability

5 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 5 A Shift Towards What? Key question is not only how to achieve the above listed modern expectations as: a single metric/attribute or a cost/value-effective combination of them all But IBM argues that it’s how to reduce the cost and complexity of achieving that Management by delegation Rethinking systems design Rethinking systems design So where to next?

6 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 6 Some Recent Initiatives Some Recent Initiatives SAS -- Self-Adaptive Systems (DARPA, 1997) SAS -- Self-Adaptive Systems (DARPA, 1997) DASADA DARPA, 2000) DASADA -- Dynamic Assembly for Systems’ Adaptability, Dependability, and Assurance (DARPA, 2000) AC -- Autonomic Computing (IBM, 2001) AC -- Autonomic Computing (IBM, 2001) ACom- Autonomic Communication (EU, 2003) ACom- Autonomic Communication (EU, 2003) SRS -- Self-Regenerative Systems (DARPA, 2003) SRS -- Self-Regenerative Systems (DARPA, 2003) ANTS -- Autonomous Nano-Technology Swarm (NASA) ANTS -- Autonomous Nano-Technology Swarm (NASA) KP -- Knowledge Plane (MIT, DARPA, 2004) KP -- Knowledge Plane (MIT, DARPA, 2004) Major Recent Initiatives Defined by Laddaga in the 1997 DARPA Broad Agency Announcement as: “...software that evaluates its own performance and changes behaviour when the evaluation indicates that it is not accomplishing what the software is intended to do...”. To adapt, the system reacts to environmental change - the problem is recognising the need for change, then planning, enacting and verifying the change - these are self-managing concerns Autonomic Computing Inspired by the “autonomic” function of the human central nervous system. software systems that take care of the mundane elements of systems management themselves, allowing human operatives to concentrate on more important work. 4 major research thrusts: Biologically-inspired diversity: genetically diverse computing fabric Biologically-inspired diversity: genetically diverse computing fabric “Cognitive immunity” and self-healing: see automated cyber immune response and system regeneration. “Cognitive immunity” and self-healing: see automated cyber immune response and system regeneration. Granular, scalable redundancy: This research thrust area will increase the practicality of redundancy techniques. Granular, scalable redundancy: This research thrust area will increase the practicality of redundancy techniques. Reasoning about the insider threat to preempt insider attacks and detect system overrun. A 2020 vision of a class of space exploration missions termed nanoswarms, where many cooperating picospacecraftintelligent spacecraft work in teams to explore the asteroid belt, based on the efficiency and coordination of hive culture. A 2020 vision of a class of space exploration missions termed nanoswarms, where many cooperating picospacecraft or intelligent spacecraft work in teams to explore the asteroid belt, based on the efficiency and coordination of hive culture.

7 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 7 Autonomic Grid Computing at the Rescue For more details For more details Autonomic Computing Autonomic Computing Autonomic Computing Autonomic Computing Drivers for change Drivers for change High-availability, etc. High-availability, etc. Definitions Definitions Designs and principles Designs and principles State-of-the-art State-of-the-art Grid Computing Grid Computing Middleware Middleware

8 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 8 Remaining Research Challenges Host-Based Host-Based Complexity Paradox Complexity Paradox Autonomic computing aims to reduce admin. costs, hide system complexity and intricacy, Autonomic computing aims to reduce admin. costs, hide system complexity and intricacy, Though, their designs are becoming more complex Though, their designs are becoming more complex as yet are poorly understood as echoed by D. Garlan 2005 as yet are poorly understood as echoed by D. Garlan 2005 “… how do we design, build, and evolve such sw systems so that they can meet given—and evolving—requirements...” “… how do we design, build, and evolve such sw systems so that they can meet given—and evolving—requirements...” Incremental deployment of AC capabilities in legacy systems. Incremental deployment of AC capabilities in legacy systems. AOP-based evolution, Interoperation AOP-based evolution, Interoperation Support functional and non-functional requirements for autonomy. Support functional and non-functional requirements for autonomy. Evaluation mechanisms and metrics [ref] Evaluation mechanisms and metrics [ref] Governance vs Autonomy Paradox Governance vs Autonomy Paradox Balancing and adjusting governance and autonomy Balancing and adjusting governance and autonomy Programming, control and Interaction Models Programming, control and Interaction Models Complex-Based Complex-Based Self-organisation Self-organisation Complex and random Networks Complex and random Networks

9 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 9 Progress to Date #1 Has been informed by a set of design paradigms Has been informed by a set of design paradigms Model-based vs Self-Organising Systems design models Model-based vs Self-Organising Systems design models Top-down vs bottom-up Top-down vs bottom-up Top-down vs bottom-up Top-down vs bottom-up Applying and/or revisiting: Applying and/or revisiting: cybernetic principles cybernetic principles control systems theory, regulation, reward and sanctions control systems theory, regulation, reward and sanctions Decision theory, Complexity theory Decision theory, Complexity theory DAI and CI DAI and CI dynamic planning, deliberative models, ML dynamic planning, deliberative models, ML Middleware support Middleware support self-awareness, reflection and deliberation self-awareness, reflection and deliberation Autonomic Software Architecture, etc. Autonomic Software Architecture, etc. Autonomic Software Architecture Autonomic Software Architecture

10 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 10 The Story so Far #1 State-of-the-art of autonomic systems designs including; State-of-the-art of autonomic systems designs including; autonomic software models and architecture, standards autonomic software models and architecture, standards tools and techniques to support tools and techniques to support the design, modelling, analysis the design, modelling, analysis and evolution of autonomic software and evolution of autonomic software Define associated models for their Define associated models for their programming, control programming, control interaction models with human and/or other non-AC systems (legacy). interaction models with human and/or other non-AC systems (legacy). Delegation of authority and its adjustment Delegation of authority and its adjustment Currently design models of the 1st generation ”autonomic systems” employ; Explicit managed autonomy via policies and rule sets predefining at design-time all extraneous behaviour using constructs such as; Event Condition Action, Design by contract Separation of concerns – AOP, etc.

11 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 11 Story so far #2 More recent work is focusing on scalable methods for specifying dynamic behaviour of autonomic systems. More recent work is focusing on scalable methods for specifying dynamic behaviour of autonomic systems. Axiomatic vs algebraic modelling Axiomatic vs algebraic modelling FOL based calculi Vs process algebra FOL based calculi Vs process algebra Evolving Evolving policies and control model policies and control model Structural/organisational model Structural/organisational model Bounded autonomy and adjustments Bounded autonomy and adjustments Unifying models for Unifying models for model-based and SOS approaches for autonomic systems engineering and management model-based and SOS approaches for autonomic systems engineering and management

12 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 12 Our Approaches #1 More recent theoretical work is focusing on scalable methods for specifying and enacting dynamic behaviour of autonomic systems More recent theoretical work is focusing on scalable methods for specifying and enacting dynamic behaviour of autonomic systems Autonomic Systems Engineering Autonomic Systems Engineering Related Work: IBM blueprint (www-03.ibm.com/autonomic/pdfs/ACBP2_2004-10-04.pdf) Related Work: IBM blueprint (www-03.ibm.com/autonomic/pdfs/ACBP2_2004-10-04.pdf) An autonomic manager contains a continuous control loop that monitors activities and takes actions to adjust the system to meet business objectives An autonomic manager contains a continuous control loop that monitors activities and takes actions to adjust the system to meet business objectives Autonomic managers learn from past experience to build action plans Autonomic managers learn from past experience to build action plans Elements need to be instrumented consistently, based on open standards Elements need to be instrumented consistently, based on open standards Our model Our model Model-based Approach Model-based Approach Systems theory, design patterns, design grammar and service- oriented programming Systems theory, design patterns, design grammar and service- oriented programming A. Taleb-Bendiab, D.W. Bustard, R. Sterritt, A. Laws, M. Randles, F. Keenan, P. Miseldine, "Model-Based Self-Managing Systems Engineering", in Proceedings of the 16th International Workshop on Database and Expert Systems Applications (DEXA’05), SAACS'05: 3rd International Workshop on Self-Adaptable and Autonomic Computing Systems, pp., A. Taleb-Bendiab, D.W. Bustard, R. Sterritt, A. Laws, M. Randles, F. Keenan, P. Miseldine, "Model-Based Self-Managing Systems Engineering", in Proceedings of the 16th International Workshop on Database and Expert Systems Applications (DEXA’05), SAACS'05: 3rd International Workshop on Self-Adaptable and Autonomic Computing Systems, pp.,Model-Based Self-Managing Systems EngineeringDEXA’05SAACS'05Model-Based Self-Managing Systems EngineeringDEXA’05SAACS'05 David Bustard, Roy Sterritt, A. Taleb-Bendiab, A. Laws, M. Randles, F. Keenan, 05, "Towards a Systemic Approach to Autonomic Systems Engineering", EASE'2005. David Bustard, Roy Sterritt, A. Taleb-Bendiab, A. Laws, M. Randles, F. Keenan, 05, "Towards a Systemic Approach to Autonomic Systems Engineering", EASE'2005.Towards a Systemic Approach to Autonomic Systems EngineeringEASE'2005Towards a Systemic Approach to Autonomic Systems EngineeringEASE'2005 David Bustard, Roy Sterritt, A. Taleb-Bendiab, A. Laws, M. 06, "Autonomic System Design Based on the Integrated Use of SSM and VSM", to appear in AI Review, Vol., No., Springer, ISSN 0269-2821. David Bustard, Roy Sterritt, A. Taleb-Bendiab, A. Laws, M. 06, "Autonomic System Design Based on the Integrated Use of SSM and VSM", to appear in AI Review, Vol., No., Springer, ISSN 0269-2821. K. Liu, A. Taleb-Bendiab, 05, "Presenting a Case for a Principled Approach to Citizen, Business and Technology Integration in e-Government Services: Challenges and Research Opportunities", Egov'05. K. Liu, A. Taleb-Bendiab, 05, "Presenting a Case for a Principled Approach to Citizen, Business and Technology Integration in e-Government Services: Challenges and Research Opportunities", Egov'05. K. LiuA. Taleb-BendiabPresenting a Case for a Principled Approach to Citizen, Business and Technology Integration in e-Government Services: Challenges and Research OpportunitiesEgov'05 K. LiuA. Taleb-BendiabPresenting a Case for a Principled Approach to Citizen, Business and Technology Integration in e-Government Services: Challenges and Research OpportunitiesEgov'05

13 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 13 Our Approaches #2 Emergence-based Approach Emergence-based Approach Complexity: Complex Systems Complexity: Complex Systems Seth Bullock and D. Cliff (HP Report, Ref.) Seth Bullock and D. Cliff (HP Report, Ref.) Complexity and Emerging Behaviour in IT Systems Complexity and Emerging Behaviour in IT Systems

14 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 14 Entropic Autonomic Design

15 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 15 Illustrative Example

16 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 16 Achievements So far …

17 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 17 Design Patterns: VSM and GOF

18 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 18 Related work Related work Outlined in the Autonomic computing edge: The “Standard” way of autonomic computing, Brent Miller, 29/05/2005. Outlined in the Autonomic computing edge: The “Standard” way of autonomic computing, Brent Miller, 29/05/2005. Though more is required – Our Approach Though more is required – Our Approach Autonomic Software Patterns Autonomic Software Patterns Associated Frameworks Associated Frameworks Description languages Description languages Sensor and Actuator Description Sensor and Actuator Description Service Assembly and deployment Service Assembly and deployment Monitoring Monitoring Standards -- Interoperation

19 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 19 Deploy Sensor (via SADL) Request monitor (via MSDL) Select Sensors Inject Readings as XML Readings Edit Sensors Show Example -1 Show Example-2 Show Example-3 Show Example-4 Show Example-5 Sensor & Actuator Framework Consumer Sensor Provider Sensors P2P Self-Organising Overlays: Grids

20 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 20 Modelling Autonomy Algebraic specification Algebraic specification Related work Related work Process Algebra Process Algebra CSP CSP Static model checking and dynamic software analysis Static model checking and dynamic software analysis Our model Our model Using SSC used to formalizes the behaviour of dynamically changing systems FOL (McCarthy, 1963).. Using SSC used to formalizes the behaviour of dynamically changing systems FOL (McCarthy, 1963).. Support concurrent actions and timing constraints. Support concurrent actions and timing constraints. Each situation can be viewed as a history of previous actions. Each situation can be viewed as a history of previous actions. Action, guards and time can be modelled at deliberation points in an autonomic setting. Action, guards and time can be modelled at deliberation points in an autonomic setting. M. Randles, A. Taleb-Bendiab, Philip Miseldine, Andy Laws, "Adjustable Deliberation of Self-Managing Systems", ECBS 2005: 449-456. [ppt] M. Randles, A. Taleb-Bendiab, Philip Miseldine, Andy Laws, "Adjustable Deliberation of Self-Managing Systems", ECBS 2005: 449-456. [ppt]Adjustable Deliberation of Self-Managing SystemsECBS 2005pptAdjustable Deliberation of Self-Managing SystemsECBS 2005ppt

21 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 21 Evolving and Adjustable Autonomy Via compositional model and evolution of Via compositional model and evolution of Software services (components) Software services (components) Control) via Software governance (Control) via Formal modelling of norms, rules of play Formal modelling of norms, rules of play Encoded via CA-SPA constructs Encoded via CA-SPA constructs Enactment support – from spec. to code using Neptune language Enactment support – from spec. to code using Neptune language deployed onto software control Centre (agent) on grid middleware deployed onto software control Centre (agent) on grid middleware M. Randles, A. Taleb-Bendiab, P. Miseldine, 05, "Mind out of Programmable Matter: Exploring Unified Models of Emergent System Autonomy for Collective Self- Regenerative Systems", Extended Abstract, the 2nd GSFC/IEEE Workshop on Radical Agent Concepts (WRAC'05), NASA GSFC Visitor's Center, Greenbelt, MD, 20th-22nd September 2005. M. Randles, A. Taleb-Bendiab, P. Miseldine, 05, "Mind out of Programmable Matter: Exploring Unified Models of Emergent System Autonomy for Collective Self- Regenerative Systems", Extended Abstract, the 2nd GSFC/IEEE Workshop on Radical Agent Concepts (WRAC'05), NASA GSFC Visitor's Center, Greenbelt, MD, 20th-22nd September 2005.Mind out of Programmable Matter: Exploring Unified Models of Emergent System Autonomy for Collective Self- Regenerative SystemsWRAC'05Mind out of Programmable Matter: Exploring Unified Models of Emergent System Autonomy for Collective Self- Regenerative SystemsWRAC'05 Miseldine, P., Taleb-Bendiab A. “A Programmatic Approach to Applying Sympathetic and Parasympathetic Autonomic Systems to Software Design”, Self-Organisation and Autonomic Informatics (ISBN I-58603-577-0), Hans Czap, Rainer Unland, Cherif Branki, Huaglory Tianfield (Eds.), pp:3-17, IOS Press, Amsterdam, 2005. Awarded "Most Innovative Paper" at Conference Miseldine, P., Taleb-Bendiab A. “A Programmatic Approach to Applying Sympathetic and Parasympathetic Autonomic Systems to Software Design”, Self-Organisation and Autonomic Informatics (ISBN I-58603-577-0), Hans Czap, Rainer Unland, Cherif Branki, Huaglory Tianfield (Eds.), pp:3-17, IOS Press, Amsterdam, 2005. Awarded "Most Innovative Paper" at Conference Miseldine, P., Taleb-Bendiab, A., “CA-SPA: Balancing the Crosscutting Concerns of Governance Autonomy in Trusted Software”, IEEE International Workshop on Trusted and Autonomic Computing Systems within AINA 2006. Vienna, Austria. April 2006. Miseldine, P., Taleb-Bendiab, A., “CA-SPA: Balancing the Crosscutting Concerns of Governance Autonomy in Trusted Software”, IEEE International Workshop on Trusted and Autonomic Computing Systems within AINA 2006. Vienna, Austria. April 2006.

22 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 22 Governing Autonomy Self-Governance Theory Self-Governance Theory Deliberative layer using the EBDI model Deliberative layer using the EBDI model Formal modelling of norms, etiquette, rules of play Formal modelling of norms, etiquette, rules of play deployed via CA-SPA constructs deployed via CA-SPA constructs Enactment support – from spec. to code Enactment support – from spec. to code

23 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 23 Programming Autonomic Systems Neptune Meta-Language Neptune Meta-Language Integrated Development Environment: Integrated Development Environment: Miseldine, P., Taleb-Bendiab A. A Programmatic Approach to Applying Sympathetic and Parasympathetic Autonomic Systems to Software Design. to appear in the 2005 International Conference on Self-Organization and Adaptation of Multi-agent and Grid Systems (SOAS’2005). Miseldine, P., Taleb-Bendiab A. A Programmatic Approach to Applying Sympathetic and Parasympathetic Autonomic Systems to Software Design. to appear in the 2005 International Conference on Self-Organization and Adaptation of Multi-agent and Grid Systems (SOAS’2005).

24 Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 24 Common Object Functionality Set Middleware Evolvable Object Mobility Middleware Communication Openness Data Formatter Serialize + Transport Suspend Operation Distributed Shared Memory Facility Request Codec Incoming Data Processed Data Make Requests / Intervene in Operation Monitor Status / Performance Register upon instantiation Inform of instantiated interest object Specify interest Lookup a service Common Feature Layer A Programming Model for Self-Organising Object Systems

25 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 25 Optimal Networked Resource Usage GRID style aims of coordinating and sharing computing, application, data, storage, or network resources GRID style aims of coordinating and sharing computing, application, data, storage, or network resources Self-organising, transparent to application, organisation at different layer. Self-organising, transparent to application, organisation at different layer.

26 Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 26 Object-Level Application Service Composition System Security Agent Service Gateway Performance Agent Spawn Middleware Administrativ e Interface Spawn Middleware Service Gateway Application 7. Connect Object Common Feature Layer 1. Register Inform Direct Request Service

27 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 27 Example 1: A Grid- Based Decision Systems

28 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 28 Another One? -- Dental Triage Demo. Current System Re-engineering via Neptune toolkit New Visual Modelling of Protocol or process flow New Grid-Based System Process is compiled into an open introspective format

29 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 29 East Lancashire Architecture OH-Dental Service Dental Triage Service EPR Service A&E/PDS/EDS/DPrac/Other E-Dental Booking Service Dental Inventory Service East Lancashire Dental Middleware Clinical Care Pathway/Governance 24 Dental Triage Service NHS Direct Adastra Call Buffer Service Accounting/billing Service PCT/Other

30 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 30Acknowledgements Acknowledgements My thanks to the Team Apologies to individual researchers if I didn’t have time to mention your work Useful Links www.cms.livjm.ac.uk/2nrich www.cms.livjm.ac.uk/cloud www.cms.livjm.ac.uk/taleb

31 Prof. A. Taleb-Bendiab, talk: Reading Guest Seminar, Date: 12/09/2015, Slide: 31 That’s the end – so I’m off !


Download ppt "Prof. A. Taleb-Bendiab, talk: Reading’06, Date: 12/09/2015, Slide: 1 Software Engineering Challenges: of Complex Self- Organising Systems Prof. A. Taleb-Bendiab."

Similar presentations


Ads by Google