SlideShare a Scribd company logo
1 of 17
Download to read offline
API kao nova arhitektura
Miroslav Rešetar
mresetar@croz.net
@MiroslavResetar
IBM, the IBM logo, and WebSphere are trademarks of IBM Corporation, registered in many jurisdictions worldwide.
API – što je to?
• Originalno API – application programming interface
– Metode, ulazni i izlazni parametri i tipovi
• Sve više pod API podrazumijevamo Web API
– HTTP servis, request i response definicija poruka
– Često JSON, rjeđe XML
– Jako rijetko web servisi
2
Arhitektura – što je to?
• Ukratko: obrasci prema kojem gradimo IT rješenje
– Imamo više pogleda na arhitekturu
– Enterprise arhitektura gleda cijeli sustav kao cjelinu te sve komponente
su posložene kako bi trebale biti
– Aplikacijska arhitektura je obrazac aplikacije za konkretan poslovni
problem (web aplikacija, batch procesiranje, integracija itd..)
– Middleware architecture – rješava problem integracije (EAI) i zajedničkih
funkcionalnosti
3
Najčešći obrasci arhitektura
• Troslojna arhitektura
– Više-manje sve web aplikacije slijede ovaj tip arhitekture
4
TROSLOJNA ARHITEKTURA
PREZENTACIJSKI SLOJ
SERVISNI (LOGIČKI) SLOJ
PODATKOVNI SLOJ
Logic/Rules/
BPM/
Integration
TRANSACTIONS
<SOAP/>
/REST/{}
SOA – servisno orijentirana arhitektura
• Implementacija aplikacijskog sloja koristeći komponente koje
pozivamo kao serivise koristeći neki od protokola, najčešće web
service (WS-*)
• SOA Manifesto
– Business value over technical strategy
– Strategic goals over project-specific benefits
– Intrinsic interoperability over custom integration
– Shared services over specific-purpose implementations
– Flexibility over optimization
– Evolutionary refinement over pursuit of initial perfection
5
SOA vs API
API Management SOA Governance
Prvenstveno REST/JSON servisi Prvenstveno SOAP/XML servisi
Niska razina stabilnosti sučelja Visoka razina stabilnosti sučelja
Fokus na uporabu API-a Fokus na funkcionalnosti vlasnika servisa
API-ima se upravlja kroz praćenje uporabe
i pretplate
Servisima se upravlja kroz model
upravljanja (SOA Governance)
Manja količina API-a Desetci ili stotine servisa
Sitno granulirani Veće granulacije
Najčešće eksterna uporaba (internet) Najčešće interna ili B2B
Pokretač su inovacije u poslovanju,
mobilne aplikacije, marketing
Pokretač su potrebe enterprise arhitekture
Pravo pristupa se implementira uporabom
Gatewaya
Pravo pristupa se implementira kroz ESB i
Gateway-e
6
Alternativa SOA-i: mikro servisi
• Miko servisi imaju veći fokus na deployment
– Svaki servis je neovisna funkcionalna komponenta koju koristimo kao
servis.
– Mikro servis dolazi sa svojim aplikacijskim serverom te se pokreće u
svom procesu
• SOA servisi su često realizirani koristeći monolitni sustav kao što je
neki ESB ili aplikacijski server
• Mikro servisi odlično se uklapaju u API svijet
7
Kako se API uklapa u enterprise arhitekturu?
• Interna (B2B) uporaba API-ja
– Mobilne aplikacije
• Pristup jednom ili više enterprise sustava
• Zahtijevaju jednostavan i efikasan API (npr. REST/JSON napravljen po mjeri
za konkretnu aplikaciju)
– Uvođenje agilnog pristupa razvoju
• API razvojni ciklus mora biti kratak kako bi uspio pratiti zahtjeve korisnika
API-a
• API je često dio digitalne strategije
– Open Government Dana
• https://www.data.gov/applications - podaci otvorene vlade SAD-a dostupni
su kroz API te kroz aplikacije koje koriste iste API-je
• http://data.gov.uk/data/api - podaci otvorene vlade UK
• http://www.digured.hr/ - nema API :-/
• Internet stvari (IoT)
– Sljedeća Velika Stvar, potpuno ovisi o dostupnim API-ima
8
Ostali faktori za uvođenje API-ja
• API Economy
– Provideri izlažu API ne bi li omogućili trećim stranama (programerima)
kreiranje aplikacija koje će omogućiti nova tržišta i širu vidljivost
providera
– Npr. Banka može izložiti API kreditnih proizvoda, API se može koristit
kod kreiranja web/mobile aplikacija koje će nuditi:
• Usporedbu kreditnih proizvoda različitih banaka
• Kupovinu (rabljenog) auta
• Online katalog nekretnina
– Provider nije trebao uložiti značajna sredstva u izgradnju različitih
mobilnih i web aplikacija već je kroz third-party aplikacije prošiorio
vidljivost svojih proizvoda
• „Staying in the context”
– Očekivanja korisnika su takva da žele dobiti sve informacije u jednoj
aplikaciji. Npr. vidjeti lokaciju na mapi, podijeliti svoje iskustvo sa
drugima (social), koristiti aplikaciju bez posebnog korisničkog accounta
(O-Auth)
9
Mi već imamo API-je, što će nam API management?
• "Mashery is the difference between having an API and having an
API ecosystem.„
• API management omogućava aspekt API ekonomije
• Rješava sljedeće probleme:
– Povezuje davatelja i korisnika API-a
• Developer Portal – popis API-a sa dokumentacijom, dodjeljivanje API
ključeva, razmjena znanja i problema (forum)
– Omogućava uspostavu uporabnog modela i sigurnosnih politika
• Omogućava kreiranje različitih paketa te definiranje kvote uporabe pojedinog
API-a
• Omogućava pristup servisu samo uz korištenje TLS veze i uz određeni
autentikacijski mehanizam (npr. O-Auth)
– Analitika uporabe API-ja
• Omogućuje davateljima usluge API-ja uvid u uporabu istih a ponekad i
naplatu uporabe
• Korisnicima omogućava analizu uporabe kroz koju se također može pratiti
posredno rad aplikacije
10
Koje API management rješenje odabrati?
• Forrester API Management Solutions, Q3 2014
11
IBM API Management (APIM)
12
APIM razvojni ciklus
13
Mogućnosti APIM-a
• Kreiranje API-a kroz web sučelje
– Nema kodiranja: „Good API management solutions create APIs via
configuration rather than coding, and the task of creating or changing an
API usually takes only minutes.” Claus T. Jensen
• Proxy i assemble mode
– Kroz assemble je moguće napraviti kompozitne API servise
• Ugrađeni testni alat
– Testiranje se radi kroz isto sučelje u kojem se kreira API
• Definicija API-ja automatski postaje i dokumentacija
– Nema dupliciranja posla
• Ugrađeni security mehanizmi (client public & security key, O-Auth)
• Podrška za REST i SOAP
• Izuzetno skalabilna i performanta platforma korištenjem IBM
WebSphere Datapower uređaja
14
Demo
• APIM @ BlueMix kratak demo
15
Pitanja (i odgovori)
16
Reference
• Forrester research: http://www.informationweek.com/cloud/platform-
as-a-service/forrester-names-top-api-management-vendors/d/d-
id/1316520
• IBM API Management: http://www-
01.ibm.com/support/knowledgecenter/SSWHYP_4.0.0/com.ibm.api
mgmt.overview.doc/api_management_overview.html?lang=en
17

More Related Content

Viewers also liked

Viewers also liked (16)

JavaCro'15 - Snappy Ubuntu Core - Gordan Krešić
JavaCro'15 - Snappy Ubuntu Core - Gordan KrešićJavaCro'15 - Snappy Ubuntu Core - Gordan Krešić
JavaCro'15 - Snappy Ubuntu Core - Gordan Krešić
 
JavaCro'15 - Beyond the basics of SonarQube improve your Java(Script) code ev...
JavaCro'15 - Beyond the basics of SonarQube improve your Java(Script) code ev...JavaCro'15 - Beyond the basics of SonarQube improve your Java(Script) code ev...
JavaCro'15 - Beyond the basics of SonarQube improve your Java(Script) code ev...
 
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
JavaCro'15 - Service Discovery in OSGi Beyond the JVM using Docker and Consul...
 
JavaCro'15 - Architecting well-structured Java applications - Eduards Sizovs
JavaCro'15 - Architecting well-structured Java applications - Eduards SizovsJavaCro'15 - Architecting well-structured Java applications - Eduards Sizovs
JavaCro'15 - Architecting well-structured Java applications - Eduards Sizovs
 
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
 
JavaCro'15 - Facebook Messenger Platform - Branimir Conjar, Krešimir Mišura
JavaCro'15 - Facebook Messenger Platform - Branimir Conjar, Krešimir MišuraJavaCro'15 - Facebook Messenger Platform - Branimir Conjar, Krešimir Mišura
JavaCro'15 - Facebook Messenger Platform - Branimir Conjar, Krešimir Mišura
 
JavaCro'15 - Single mail client for Lotus Domino and MS Exchange with Liferay...
JavaCro'15 - Single mail client for Lotus Domino and MS Exchange with Liferay...JavaCro'15 - Single mail client for Lotus Domino and MS Exchange with Liferay...
JavaCro'15 - Single mail client for Lotus Domino and MS Exchange with Liferay...
 
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
 
JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
JavaCro'15 - Docker, Kubernetes and Jube - a new cloud architecture - Aleš Ju...
 
Javantura v3 - The story of Java & HUJAK
Javantura v3 - The story of Java & HUJAKJavantura v3 - The story of Java & HUJAK
Javantura v3 - The story of Java & HUJAK
 
JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
JavaCro'15 - WebRTC in PBZ video chat - Zoran PerakJavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak
 
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
JavaCro'15 - HUJAKing – Expansion of Java Community - Branko Mihaljević, Alek...
 
Javantura v3 - Logs – the missing gold mine – Franjo Žilić
Javantura v3 - Logs – the missing gold mine – Franjo ŽilićJavantura v3 - Logs – the missing gold mine – Franjo Žilić
Javantura v3 - Logs – the missing gold mine – Franjo Žilić
 
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje CrnjakJavantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
Javantura v3 - Going Reactive with RxJava – Hrvoje Crnjak
 
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad PečanacJavantura v3 - ES6 – Future Is Now – Nenad Pečanac
Javantura v3 - ES6 – Future Is Now – Nenad Pečanac
 
Java Certification by HUJAK - 2015-05-12 - at JavaCro'15 conference
Java Certification by HUJAK - 2015-05-12 - at JavaCro'15 conferenceJava Certification by HUJAK - 2015-05-12 - at JavaCro'15 conference
Java Certification by HUJAK - 2015-05-12 - at JavaCro'15 conference
 

Similar to JavaCro'15 - API as a new architecture - Miroslav Rešetar

Osb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOsb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOracle Hrvatska
 
REST API - iskustva iz prakse
REST API - iskustva iz prakseREST API - iskustva iz prakse
REST API - iskustva iz prakseDenis Kranjčec
 
Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle Hrvatska
 
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...Tomislav Lulic
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević Kruno Ris
 
Silverlight Business Overview
Silverlight Business OverviewSilverlight Business Overview
Silverlight Business OverviewCrowd
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaandrea132961
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 
Project Server and SharePoint Server - better together
Project Server and SharePoint Server - better togetherProject Server and SharePoint Server - better together
Project Server and SharePoint Server - better togetherAdis Jugo
 
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u AzureuLuka Lovosevic
 
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365Tomislav Lulic
 
LoCloud Technical Poster - Više od prostora
LoCloud Technical Poster - Više od prostora LoCloud Technical Poster - Više od prostora
LoCloud Technical Poster - Više od prostora locloud
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudDubravko Marak
 
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaWhite paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaHrvatski Telekom
 
Analiza softverske imovine koju koristite - prvi korak migraciji u Cloud
Analiza softverske imovine koju koristite - prvi korak migraciji u CloudAnaliza softverske imovine koju koristite - prvi korak migraciji u Cloud
Analiza softverske imovine koju koristite - prvi korak migraciji u CloudTomislav Lulic
 
SharePoint kao razvojna platforma za ASP.NET developere
SharePoint kao razvojna platforma za ASP.NET developereSharePoint kao razvojna platforma za ASP.NET developere
SharePoint kao razvojna platforma za ASP.NET developereEdin Kapic
 
Što je novo u Officeu 2016 za korisnike
Što je novo u Officeu 2016 za korisnikeŠto je novo u Officeu 2016 za korisnike
Što je novo u Officeu 2016 za korisnikeTomislav Lulic
 
Upravljanje pristupom uz Azure AD B2C_IvanMarkovic
Upravljanje pristupom uz Azure AD B2C_IvanMarkovicUpravljanje pristupom uz Azure AD B2C_IvanMarkovic
Upravljanje pristupom uz Azure AD B2C_IvanMarkovicIvan Marković
 

Similar to JavaCro'15 - API as a new architecture - Miroslav Rešetar (20)

Osb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility mOsb studija slucaja sgsb-a.ppt [compatibility m
Osb studija slucaja sgsb-a.ppt [compatibility m
 
REST API - iskustva iz prakse
REST API - iskustva iz prakseREST API - iskustva iz prakse
REST API - iskustva iz prakse
 
Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.Oracle information age co croz-neos v2.2.
Oracle information age co croz-neos v2.2.
 
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...
KulenDayz 2014 - Migracija u Cloud, da li bas sve znate o softveru koji trenu...
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević
 
Silverlight Business Overview
Silverlight Business OverviewSilverlight Business Overview
Silverlight Business Overview
 
Upravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjimaUpravljanje Web Uslugama u IT okruženjima
Upravljanje Web Uslugama u IT okruženjima
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
Project Server and SharePoint Server - better together
Project Server and SharePoint Server - better togetherProject Server and SharePoint Server - better together
Project Server and SharePoint Server - better together
 
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
 
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
 
LoCloud Technical Poster - Više od prostora
LoCloud Technical Poster - Više od prostora LoCloud Technical Poster - Više od prostora
LoCloud Technical Poster - Više od prostora
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloud
 
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaWhite paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
 
Analiza softverske imovine koju koristite - prvi korak migraciji u Cloud
Analiza softverske imovine koju koristite - prvi korak migraciji u CloudAnaliza softverske imovine koju koristite - prvi korak migraciji u Cloud
Analiza softverske imovine koju koristite - prvi korak migraciji u Cloud
 
SharePoint kao razvojna platforma za ASP.NET developere
SharePoint kao razvojna platforma za ASP.NET developereSharePoint kao razvojna platforma za ASP.NET developere
SharePoint kao razvojna platforma za ASP.NET developere
 
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
 
Što je novo u Officeu 2016 za korisnike
Što je novo u Officeu 2016 za korisnikeŠto je novo u Officeu 2016 za korisnike
Što je novo u Officeu 2016 za korisnike
 
Upravljanje pristupom uz Azure AD B2C_IvanMarkovic
Upravljanje pristupom uz Azure AD B2C_IvanMarkovicUpravljanje pristupom uz Azure AD B2C_IvanMarkovic
Upravljanje pristupom uz Azure AD B2C_IvanMarkovic
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 

JavaCro'15 - API as a new architecture - Miroslav Rešetar

  • 1. API kao nova arhitektura Miroslav Rešetar mresetar@croz.net @MiroslavResetar IBM, the IBM logo, and WebSphere are trademarks of IBM Corporation, registered in many jurisdictions worldwide.
  • 2. API – što je to? • Originalno API – application programming interface – Metode, ulazni i izlazni parametri i tipovi • Sve više pod API podrazumijevamo Web API – HTTP servis, request i response definicija poruka – Često JSON, rjeđe XML – Jako rijetko web servisi 2
  • 3. Arhitektura – što je to? • Ukratko: obrasci prema kojem gradimo IT rješenje – Imamo više pogleda na arhitekturu – Enterprise arhitektura gleda cijeli sustav kao cjelinu te sve komponente su posložene kako bi trebale biti – Aplikacijska arhitektura je obrazac aplikacije za konkretan poslovni problem (web aplikacija, batch procesiranje, integracija itd..) – Middleware architecture – rješava problem integracije (EAI) i zajedničkih funkcionalnosti 3
  • 4. Najčešći obrasci arhitektura • Troslojna arhitektura – Više-manje sve web aplikacije slijede ovaj tip arhitekture 4 TROSLOJNA ARHITEKTURA PREZENTACIJSKI SLOJ SERVISNI (LOGIČKI) SLOJ PODATKOVNI SLOJ Logic/Rules/ BPM/ Integration TRANSACTIONS <SOAP/> /REST/{}
  • 5. SOA – servisno orijentirana arhitektura • Implementacija aplikacijskog sloja koristeći komponente koje pozivamo kao serivise koristeći neki od protokola, najčešće web service (WS-*) • SOA Manifesto – Business value over technical strategy – Strategic goals over project-specific benefits – Intrinsic interoperability over custom integration – Shared services over specific-purpose implementations – Flexibility over optimization – Evolutionary refinement over pursuit of initial perfection 5
  • 6. SOA vs API API Management SOA Governance Prvenstveno REST/JSON servisi Prvenstveno SOAP/XML servisi Niska razina stabilnosti sučelja Visoka razina stabilnosti sučelja Fokus na uporabu API-a Fokus na funkcionalnosti vlasnika servisa API-ima se upravlja kroz praćenje uporabe i pretplate Servisima se upravlja kroz model upravljanja (SOA Governance) Manja količina API-a Desetci ili stotine servisa Sitno granulirani Veće granulacije Najčešće eksterna uporaba (internet) Najčešće interna ili B2B Pokretač su inovacije u poslovanju, mobilne aplikacije, marketing Pokretač su potrebe enterprise arhitekture Pravo pristupa se implementira uporabom Gatewaya Pravo pristupa se implementira kroz ESB i Gateway-e 6
  • 7. Alternativa SOA-i: mikro servisi • Miko servisi imaju veći fokus na deployment – Svaki servis je neovisna funkcionalna komponenta koju koristimo kao servis. – Mikro servis dolazi sa svojim aplikacijskim serverom te se pokreće u svom procesu • SOA servisi su često realizirani koristeći monolitni sustav kao što je neki ESB ili aplikacijski server • Mikro servisi odlično se uklapaju u API svijet 7
  • 8. Kako se API uklapa u enterprise arhitekturu? • Interna (B2B) uporaba API-ja – Mobilne aplikacije • Pristup jednom ili više enterprise sustava • Zahtijevaju jednostavan i efikasan API (npr. REST/JSON napravljen po mjeri za konkretnu aplikaciju) – Uvođenje agilnog pristupa razvoju • API razvojni ciklus mora biti kratak kako bi uspio pratiti zahtjeve korisnika API-a • API je često dio digitalne strategije – Open Government Dana • https://www.data.gov/applications - podaci otvorene vlade SAD-a dostupni su kroz API te kroz aplikacije koje koriste iste API-je • http://data.gov.uk/data/api - podaci otvorene vlade UK • http://www.digured.hr/ - nema API :-/ • Internet stvari (IoT) – Sljedeća Velika Stvar, potpuno ovisi o dostupnim API-ima 8
  • 9. Ostali faktori za uvođenje API-ja • API Economy – Provideri izlažu API ne bi li omogućili trećim stranama (programerima) kreiranje aplikacija koje će omogućiti nova tržišta i širu vidljivost providera – Npr. Banka može izložiti API kreditnih proizvoda, API se može koristit kod kreiranja web/mobile aplikacija koje će nuditi: • Usporedbu kreditnih proizvoda različitih banaka • Kupovinu (rabljenog) auta • Online katalog nekretnina – Provider nije trebao uložiti značajna sredstva u izgradnju različitih mobilnih i web aplikacija već je kroz third-party aplikacije prošiorio vidljivost svojih proizvoda • „Staying in the context” – Očekivanja korisnika su takva da žele dobiti sve informacije u jednoj aplikaciji. Npr. vidjeti lokaciju na mapi, podijeliti svoje iskustvo sa drugima (social), koristiti aplikaciju bez posebnog korisničkog accounta (O-Auth) 9
  • 10. Mi već imamo API-je, što će nam API management? • "Mashery is the difference between having an API and having an API ecosystem.„ • API management omogućava aspekt API ekonomije • Rješava sljedeće probleme: – Povezuje davatelja i korisnika API-a • Developer Portal – popis API-a sa dokumentacijom, dodjeljivanje API ključeva, razmjena znanja i problema (forum) – Omogućava uspostavu uporabnog modela i sigurnosnih politika • Omogućava kreiranje različitih paketa te definiranje kvote uporabe pojedinog API-a • Omogućava pristup servisu samo uz korištenje TLS veze i uz određeni autentikacijski mehanizam (npr. O-Auth) – Analitika uporabe API-ja • Omogućuje davateljima usluge API-ja uvid u uporabu istih a ponekad i naplatu uporabe • Korisnicima omogućava analizu uporabe kroz koju se također može pratiti posredno rad aplikacije 10
  • 11. Koje API management rješenje odabrati? • Forrester API Management Solutions, Q3 2014 11
  • 12. IBM API Management (APIM) 12
  • 14. Mogućnosti APIM-a • Kreiranje API-a kroz web sučelje – Nema kodiranja: „Good API management solutions create APIs via configuration rather than coding, and the task of creating or changing an API usually takes only minutes.” Claus T. Jensen • Proxy i assemble mode – Kroz assemble je moguće napraviti kompozitne API servise • Ugrađeni testni alat – Testiranje se radi kroz isto sučelje u kojem se kreira API • Definicija API-ja automatski postaje i dokumentacija – Nema dupliciranja posla • Ugrađeni security mehanizmi (client public & security key, O-Auth) • Podrška za REST i SOAP • Izuzetno skalabilna i performanta platforma korištenjem IBM WebSphere Datapower uređaja 14
  • 15. Demo • APIM @ BlueMix kratak demo 15
  • 17. Reference • Forrester research: http://www.informationweek.com/cloud/platform- as-a-service/forrester-names-top-api-management-vendors/d/d- id/1316520 • IBM API Management: http://www- 01.ibm.com/support/knowledgecenter/SSWHYP_4.0.0/com.ibm.api mgmt.overview.doc/api_management_overview.html?lang=en 17