SlideShare a Scribd company logo
[Company logo] Dr. Alberto Lagna Chief Technology Officer Biznology srl SOPERA master reseller for Italy Sviluppo di architetture orientate ai servizi con EclipseSOA
Why would I want to take a closer look? If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. —  Runtime service discovery — Security — Monitoring — Remote configuration
What is Swordfish? Monitoring  Plugin Swordfish core Apache ServiceMix 4 Swordfish framework Process Engine (Apache ODE) SOAP Binding (Apache CXF) Swordfish core Apache ServiceMix 4 Swordfish framework JAX-WS Cont. (Apache CXF) Business Code (Java) Business Code (BPEL) Service consumer Service provider SOAP Binding (Apache CXF) Configuration  Plugin Registry  Plugin Configuration  Plugin Registry  Plugin Monitoring  Plugin SOAP Service Registry Configuration Store lookup register retrieve configuration retrieve configuration Distributed ESB Configuration  Plugin Registry  Plugin
A few words about OSGi and some terms OSGi:  A standard for creating highly modular Java applications, based on the concept of bundles. The Swordfish framework requires an OSGi runtime (usually Eclipse Equinox). Bundle:  A module containing Java implementation classes and additional data that can be deployed into an OSGi runtime environment. A bundle can  provide code to and use code from other bundles, allowing for better modularization. Target platform:  A set of OSGi bundles that defines the runtime environment  for the bundles you create in your Eclipse workspace. The Swordfish target  platform contains the Swordfish framework and the plug-ins you intend to use. PDE : Plug-in development environment, the Eclipse perspective and tools you use to create bundles with the Eclipse IDE.
[object Object]
bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) Demonstration Scenario (business view) The FlightBooking service is a composite service that orchestrates calls to the FlightReservation and PaymentProcessing services. FlightReservation Service PaymentProcessing Service FlightBooking Service
Demonstration Scenario (technical view) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP <Envelope> <Body> <bookFlight> <flightData> <flightNumber> LH455 </flightNumber> <date>2009-10-10</date> </flightData> <paymentData> <creditCardNumber>   1234567843218765 </creditCardNumber> <creditCardExpiry> 10/10 </creditCardExpiry> </paymentData> </bookFlight> </Body> </Envelope> <Envelope> <Body> <processPayment> <paymentData> <creditCardNumber>   1234567843218765 </creditCardNumber> <creditCardExpiry> 10/10 </creditCardExpiry> </paymentData> </processPayment> </Body> </Envelope> <Envelope> <Body> <reserveFlight> <flightData> <flightNumber> LH455 </flightNumber> <date>2009-10-10</date> </flightData> </reserveFlight> </Body> </Envelope> FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ ✔ ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. —  Runtime service discovery — Security — Monitoring — Remote configuration ✔ Why would I want to take a closer look?
Why would I want to take a closer look? If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. —  Runtime service discovery — Security — Monitoring — Remote configuration ✔ ✔
Q&A Dr. Alberto Lagna Chief Technology Officer Biznology srl SOPERA master reseller for Italy [email_address] www.sopera.de www.biznology.it

More Related Content

Viewers also liked (6)

Model Runway Part 2 Design Best Practices at Blue Cross BlueShield
Model Runway Part 2   Design Best Practices at Blue Cross BlueShieldModel Runway Part 2   Design Best Practices at Blue Cross BlueShield
Model Runway Part 2 Design Best Practices at Blue Cross BlueShield
 
Understanding Mda
Understanding MdaUnderstanding Mda
Understanding Mda
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
University of Miami Briefing: DevOps Steer – an agile response to customer fe...
University of Miami Briefing: DevOps Steer – an agile response to customer fe...University of Miami Briefing: DevOps Steer – an agile response to customer fe...
University of Miami Briefing: DevOps Steer – an agile response to customer fe...
 
MDA
MDAMDA
MDA
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 

Similar to Sviluppo di architetture orientate ai servizi con EclipseSOA

Introduction To The Eclipse Platform
Introduction To The Eclipse PlatformIntroduction To The Eclipse Platform
Introduction To The Eclipse Platform
ciukes
 
Server-side OSGi with Apache Sling
Server-side OSGi with Apache SlingServer-side OSGi with Apache Sling
Server-side OSGi with Apache Sling
Felix Meschberger
 
Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jao
jedt
 
System Center Orchestrator 2012 Overview
System Center Orchestrator 2012 OverviewSystem Center Orchestrator 2012 Overview
System Center Orchestrator 2012 Overview
Amit Gatenyo
 
Zend Platform
Zend PlatformZend Platform
Zend Platform
Simon H
 

Similar to Sviluppo di architetture orientate ai servizi con EclipseSOA (20)

Introduction To The Eclipse Platform
Introduction To The Eclipse PlatformIntroduction To The Eclipse Platform
Introduction To The Eclipse Platform
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
Sviluppo di architetture orientate ai servizi con EclipseSOA
Sviluppo di architetture orientate ai servizi con EclipseSOASviluppo di architetture orientate ai servizi con EclipseSOA
Sviluppo di architetture orientate ai servizi con EclipseSOA
 
Escape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud ServiceEscape the defaults - Configure Sling like AEM as a Cloud Service
Escape the defaults - Configure Sling like AEM as a Cloud Service
 
Polyglot OSGi
Polyglot OSGiPolyglot OSGi
Polyglot OSGi
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
 
Server-side OSGi with Apache Sling
Server-side OSGi with Apache SlingServer-side OSGi with Apache Sling
Server-side OSGi with Apache Sling
 
Aswin
AswinAswin
Aswin
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Php Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc JaoPhp Asp Net Interoperability Rc Jao
Php Asp Net Interoperability Rc Jao
 
Jug Poitou Charentes - Apache, OSGi and Karaf
Jug Poitou Charentes -  Apache, OSGi and KarafJug Poitou Charentes -  Apache, OSGi and Karaf
Jug Poitou Charentes - Apache, OSGi and Karaf
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
Apache OpenWhisk
Apache OpenWhiskApache OpenWhisk
Apache OpenWhisk
 
System Center Orchestrator 2012 Overview
System Center Orchestrator 2012 OverviewSystem Center Orchestrator 2012 Overview
System Center Orchestrator 2012 Overview
 
Openshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetupOpenshift Container Platform: First ItalyMeetup
Openshift Container Platform: First ItalyMeetup
 
Zend Platform
Zend PlatformZend Platform
Zend Platform
 
Appenginejs (old presentation)
Appenginejs (old presentation)Appenginejs (old presentation)
Appenginejs (old presentation)
 

More from Alberto Lagna

Alberto lagna soa that works
Alberto lagna   soa that worksAlberto lagna   soa that works
Alberto lagna soa that works
Alberto Lagna
 
Una enterprise architecture a servizi
Una enterprise architecture a serviziUna enterprise architecture a servizi
Una enterprise architecture a servizi
Alberto Lagna
 
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAX
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAXLifeticker per FIFA 2006, in tempo reale con SOA e AJAX
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAX
Alberto Lagna
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
Alberto Lagna
 
Contenuti time-based e personalizzati sul cellularde
Contenuti time-based e personalizzati sul cellulardeContenuti time-based e personalizzati sul cellularde
Contenuti time-based e personalizzati sul cellularde
Alberto Lagna
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)
Alberto Lagna
 

More from Alberto Lagna (8)

Alberto lagna soa that works
Alberto lagna   soa that worksAlberto lagna   soa that works
Alberto lagna soa that works
 
Biznology presentazione azienda
Biznology presentazione aziendaBiznology presentazione azienda
Biznology presentazione azienda
 
why cloud loves soa
why cloud loves soawhy cloud loves soa
why cloud loves soa
 
Una enterprise architecture a servizi
Una enterprise architecture a serviziUna enterprise architecture a servizi
Una enterprise architecture a servizi
 
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAX
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAXLifeticker per FIFA 2006, in tempo reale con SOA e AJAX
Lifeticker per FIFA 2006, in tempo reale con SOA e AJAX
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
Contenuti time-based e personalizzati sul cellularde
Contenuti time-based e personalizzati sul cellulardeContenuti time-based e personalizzati sul cellularde
Contenuti time-based e personalizzati sul cellularde
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 

Sviluppo di architetture orientate ai servizi con EclipseSOA

  • 1. [Company logo] Dr. Alberto Lagna Chief Technology Officer Biznology srl SOPERA master reseller for Italy Sviluppo di architetture orientate ai servizi con EclipseSOA
  • 2. Why would I want to take a closer look? If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. — Runtime service discovery — Security — Monitoring — Remote configuration
  • 3. What is Swordfish? Monitoring Plugin Swordfish core Apache ServiceMix 4 Swordfish framework Process Engine (Apache ODE) SOAP Binding (Apache CXF) Swordfish core Apache ServiceMix 4 Swordfish framework JAX-WS Cont. (Apache CXF) Business Code (Java) Business Code (BPEL) Service consumer Service provider SOAP Binding (Apache CXF) Configuration Plugin Registry Plugin Configuration Plugin Registry Plugin Monitoring Plugin SOAP Service Registry Configuration Store lookup register retrieve configuration retrieve configuration Distributed ESB Configuration Plugin Registry Plugin
  • 4. A few words about OSGi and some terms OSGi: A standard for creating highly modular Java applications, based on the concept of bundles. The Swordfish framework requires an OSGi runtime (usually Eclipse Equinox). Bundle: A module containing Java implementation classes and additional data that can be deployed into an OSGi runtime environment. A bundle can provide code to and use code from other bundles, allowing for better modularization. Target platform: A set of OSGi bundles that defines the runtime environment for the bundles you create in your Eclipse workspace. The Swordfish target platform contains the Swordfish framework and the plug-ins you intend to use. PDE : Plug-in development environment, the Eclipse perspective and tools you use to create bundles with the Eclipse IDE.
  • 5.
  • 6. bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) Demonstration Scenario (business view) The FlightBooking service is a composite service that orchestrates calls to the FlightReservation and PaymentProcessing services. FlightReservation Service PaymentProcessing Service FlightBooking Service
  • 7. Demonstration Scenario (technical view) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP <Envelope> <Body> <bookFlight> <flightData> <flightNumber> LH455 </flightNumber> <date>2009-10-10</date> </flightData> <paymentData> <creditCardNumber> 1234567843218765 </creditCardNumber> <creditCardExpiry> 10/10 </creditCardExpiry> </paymentData> </bookFlight> </Body> </Envelope> <Envelope> <Body> <processPayment> <paymentData> <creditCardNumber> 1234567843218765 </creditCardNumber> <creditCardExpiry> 10/10 </creditCardExpiry> </paymentData> </processPayment> </Body> </Envelope> <Envelope> <Body> <reserveFlight> <flightData> <flightNumber> LH455 </flightNumber> <date>2009-10-10</date> </flightData> </reserveFlight> </Body> </Envelope> FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
  • 8. bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
  • 9. bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
  • 10. bookFlight(flight,payment) reserveFlight(flight) processPayment(payment) OSGi Runtime 1 OSGi Runtime 2 SOAP/HTTP SOAP/HTTP SOAP/HTTP ✔ ✔ ✔ FlightReservation Provider PaymentProcessing Provider FlightBooking Provider PaymentProcessing Consumer PaymentProcessing Provider FlightReservation Consumer
  • 11. If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. — Runtime service discovery — Security — Monitoring — Remote configuration ✔ Why would I want to take a closer look?
  • 12. Why would I want to take a closer look? If you are a software developer… Swordfish makes it easy to develop enterprise services on OSGi. If you are an enterprise architect… Swordfish makes your services enterprise-ready. — Runtime service discovery — Security — Monitoring — Remote configuration ✔ ✔
  • 13. Q&A Dr. Alberto Lagna Chief Technology Officer Biznology srl SOPERA master reseller for Italy [email_address] www.sopera.de www.biznology.it

Editor's Notes

  1. SOA solution implemented on the distributed ESB pattern Theres no central hub Consumer and provider communicates directly The way in which consumer and provider speaks can be completely customizable You can have a plugin that for a svc consumer calls go to a registry and looks for policies Every aspect of swordfish can be customised by your own implementation There a re api to customise Monitoring - svc lookup Based on proven tech, Goal is to add enterprise features to the apache libraries Completely based on osgi =&gt; expandable Developing consumer and providers = develop osgi components
  2. PDE è il nome originario, ma serve per sviluppare bundles
  3. See the scenario to demonstrate the development of svcs FlightBooking svc orchestrates calls to FRS and PPS
  4. The interfaces are described in WSDL =&gt; generate code for providers and consumers
  5. Spero di avervi convinto che creare una serie di servizi con Eclipse SOA dal punto di vista dello sviluppatore è semplice: non occorre conoscere SOAP, i WS in dettaglio, ecc. E’ sufficiente concentrarsi sulla logica di buz. SOA però è molto di più, non è solo servizi. Vediamo che succede se aggiungo un service registry
  6. Swordfish ha delle caratteristiche che gli altri ESB non hanno
  7. Swordfish ha delle caratteristiche che gli altri ESB non hanno