Sovelluskehittäjät ja data -kehittäjäyhteisön mahdollistaminen
Kalle Launiala, ProtonIT Oy
The Ball – The Information Ecosystem
[email protected], +358 44 5575665
Esityksen rakenne
• Datan tarjoaminen käytettäväksi
• Sovelluskehityksen ”tekemisen rooli”• ... suhteessa datan jalostamiseen
• Datajalostamisen ja ”appsin” arkkitehtuurin yhdistäminen• Kuluttajan palveleminen, operointi, yksityinen data
• Pilvi-infran datan käsittelyn lyhyt matematiikka ja kustannukset• Oma konesali vs. Pilvi-infra
Erillinen sessio: ProtonIT Oy & Pallo-alusta ”yritysesittely”
Datan tarjoaminen käytettäväksiPäätermi: Resursointia = ihmis + konekapasiteettia
Agenda: Tuotetaan data saataville1. Tunnistetaan kiinnostava
raakadata
2. Tunnistetaan jalostus ja indeksointitarve
3. Resursoidaan (ihmis + laskentaresurssein) raakadatasta => datalähteitä
4. Resursoidaan datalähteiden tallennus
5. Resursoidaan datalähteiden palvelu ulospäin käyttäjille
6. Resursoidaan ”Miten käytät?” dokumentointi ja ylläpidetään se ajantasaisena
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
How-To Documentationabout the usage;
Including SDK/API andData format usage, examples
Agenda: Tuotetaan data saataville1. Tunnistetaan kiinnostava
raakadata
2. Tunnistetaan jalostus ja indeksointitarve
3. Resursoidaan (ihmis + laskentaresurssein) raakadatasta => datalähteitä
4. Resursoidaan datalähteiden tallennus
5. Resursoidaan datalähteiden palvelu ulospäin käyttäjille
6. Resursoidaan ”Miten käytät?” dokumentointi ja ylläpidetään se ajantasaisena
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
How-To Documentationabout the usage;
Including SDK/API andData format usage, examples
Sovelluskehittäjän rooliMitäs ne oikeastaan tarvitsevatkaan?
Appsin kehitys: Koko tekeminen (vapaa järjestys)
Häkkäilystä => ajavaan appsiin/palveluun - konseptiin
1. Tunnistetaan käytettävät/tarvittavat datalähteet
2. Nykytapa/oma tapa: selvitetään (oman) teknologiapinon mahdollisuudet/rajoitteet
3. ”Opiskellaan” datalähteen käyttö omasta perspektiivistä (eli kohdat 1 & 2 kullekin lähteelle; SDK/API; formaatit)
4. Datan yhdistely: Indeksoidaan oman tarpeen mukaan – datan imuroidaan osittain omaan tietokantaan
5. Toteutetaan näkyvä ”Appsi”; web/mobiiliappsi – tai ylipäätään jotain näkyvää
Konseptista => loppukäyttäjän appsiksi
1. Yhdistetään avoin data käyttäjän yksityiseen dataan 1. esim. suosikit/kirjanmerkit
2. ... tai erittäin yksityiseen dataan: kalenteri, sijainti...
2. Tuotantoon?: Siistimistä häkkäyksestä tuotantotason appsiksi
3. Uudelleenkäyttö?: Laitetaan rakenteen talteen/pidetään GitHubissa itselle ja/tai yhteisölle
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Appsin kehitys: Koko tekeminen (vapaa järjestys)
Häkkäilystä => ajavaan appsiin/palveluun - konseptiin
1. Tunnistetaan käytettävät/tarvittavat datalähteet
2. Nykytapa/oma tapa: selvitetään (oman) teknologiapinon mahdollisuudet/rajoitteet
3. ”Opiskellaan” datalähteen käyttö omasta perspektiivistä (eli kohdat 1 & 2 kullekin lähteelle; SDK/API; formaatit)
4. Datan yhdistely: Indeksoidaan oman tarpeen mukaan – datan imuroidaan osittain omaan tietokantaan
5. Toteutetaan näkyvä ”Appsi”; web/mobiiliappsi – tai ylipäätään jotain näkyvää
Konseptista => loppukäyttäjän appsiksi
1. Yhdistetään avoin data käyttäjän yksityiseen dataan 1. esim. suosikit/kirjanmerkit
2. ... tai erittäin yksityiseen dataan: kalenteri, sijainti...
2. Tuotantoon?: Siistimistä häkkäyksestä tuotantotason appsiksi
3. Uudelleenkäyttö?: Laitetaan rakenteen talteen/pidetään GitHubissa itselle ja/tai yhteisölle
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Sovelluskehitys, operointi, liiketoimintaSovelluskehityksen arvo koko ketjun osana, operoinnin ja liiketoiminnan mahdollistamana...
Appsit omissa siiloissaan, operointia ei käytännössä ole...
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
Raw Data Source A
Open Data Source X
Open Data Source Y
Open Data Source Z
Raw Data Source B
Data Refining, Processing,
Reformatting,Indexing...
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Sovellustason yhdistettävät rakenteet
Datalähteiden käyttö
• Tiedostetaan, että kaikki pyrkivät tekemään samanlaista
• Kaikki joko tekevät samaa, tai pyrkivät siihen
• Yhteisön luontainen perusta
Yksityisen datan käyttötarve
• Vaatii hallittua (auditoitua) arkkitehtuuria
• Ei ole tiedostettu, että ongelma on yhteinen
• Kaikkien pitäisi tehdä samaa
Open Data Source A
Open Data Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Combination ofSource A & Source B
ApplicationCombined/Refined
Data
ApplicationUser Specific
Data
Web App Mobile App
Application Business Logic &Back-End Server
Hyödyt: Yksittäiselle kehittäjälle
• Yhteisö-yhtenäiset rajapintarakenteet datalähteestä riippumatta
• Raakadatan jalostus on myös kehittäjien tekemää
• Resursointisäästö, kun yhteisö voi jakaa jalostustuotokset lähteinä
• Yhtenäistetty, läpinäkyvä ja luotettava yksityisen tiedon käsittely
Raw Data Source(s)
Open Data Source(s)
Data Refining, Processing,
Reformatting,Indexing...
How-To Documentationabout the usage;
Including SDK/API andData format usage, examples
ApplicationPublic, Structured
Open Data
ApplicationUser SpecificPrivate Data
Application Business Logic &Back-End Server
Web App Mobile App
Sovelluskehitys ja operointi tukevat toisiaan => liiketoimintaa!
Raw Data Source(s)
Open Data Source(s)
Data Refining, Processing,
Reformatting,Indexing...
ApplicationStructuredOpen Data
ApplicationUser SpecificPrivate Data
Application Business Logic &Back-End Servers
Web App sMobile App s
Raw Data Source(s)
Raw Data Source(s)
Raw Data Source(s)
Raw Data Source(s)
Raw Data Source(s)
Open Data Source(s)
Open Data Source(s)
Open Data Source(s)
ApplicationStructuredOpen Data
ApplicationStructuredOpen Data
ApplicationStructuredOpen Data
ApplicationUser SpecificPrivate Data
ApplicationUser SpecificPrivate Data
ApplicationUser SpecificPrivate Data
The End User
(Pilvi-)infra & kustannusRaakoja numeroita ja fyysisen maailman realismia...
Tallennuksen & siirron kustannus – Microsoft Azuren listahinnoista
• Prosessointi: 0,056€/tunti (1,7 GB muistilla)• 42€/kk
• Storage / per TB / kk• Blob storage:
• 19 €/TB (Locally redundant) , 37 €/TB (GEO)
• File share: • 62 €/TB (Locally redundant), 78 €/TB (GEO)
• Transfer (datacenteristä ulos)• 93 €/TB• Sisään 0€, sisäinen liikenne 0€
Skenaarioissa tarkoittaa Azuressa...
• 1 TB datan tallentaminen eli avaaminen = 444€/vuosi• 10 GB datan avaaminen = 4,3€/vuosi• Pilvi-storageen, joka skaalautuu 60MB/s PER-OBJEKTI• Yhteisö pääsee kiinni (myös) suoraan raakadataan
• Datan ”push” tarjoilu eteenpäin (laskennassa 20MB/s per siirtoon osallistuva CPU)• Samassa konesalissa 0,82€/TB• Konesalin ulkopuolelle 93,82€/TB
Azure vs. ”Oma konesali”
• ”Omasta konesalista”• Teratavun palvelu 10 Gbit kaistaa pitkin = 1024 sekuntia = 17min• Kannattaako laskea ”per teratavu” skaalassa..?• ... Ja levyjärjestelmänkin pitäisi kyetä 1GB/s vauhtiin...
• 10 kilotavun JSON-siirto, 10k käyttäjälle = 100MB• Aikayksikkö? Datahaussa 10 kt on aika pientä appsin ajon aikana...• 20 KB, 50k käyttäjää = 10x = 1GB• Piikeissä ”per sekuntiskaala” jos käyttö yhtaikaista, esim. TV-shown
promoappsi...
• Millaisten tahojen liiketoimintaa eri mittakaavat ovat?• Sovelluskehittäjät ovat jo siellä pilvessä, ominkin luottokortein...
Pilvi-pilvi infran reality-check
• Motiivi appsitason hallintaan tulee myös mobiilista
• LTE lupaukset 50Mbps per käyttäjä• ... Tukiaseman maksimi on mittakaavaa 150Mbps
• Tukiasemien väliset etäisyydet lasketaan kilometreissä
• Jos halutaan palvella enemmän, kuin ”3” käyttäjää...
• Sovellusten arkkitehtuurin liityttävä infraan• Operointi, laskutus kaistan/datan käytön mukaan...
Datajalostamo -realismiaMicrosoft Azure, CloudStreet, Pallo... + palveluiden rakentajat
Kalle Launiala / ProtonITThe Ball – The Information Ecosystem
... Eli kehittäjä-BIO, ne kriittiset rattaat koko hommassa...
Mikroyritys-yhteistyön-pohja:Kalle Launiala BIO
• 1995- TKK/Tietotekniikka
• 1998- mukaan osakkaaksi Nolics Oy:hyn• Monialustakehitystä Win32/C++, OpenGL, Access,
Progress-tietokannat, Linux-yhteensopivuutta
• 2002-2005 Nolics.net ORM tuotteistus• Oma rooli paketin hiominen, kehittäjäesimerkit, usean
tietokannan tuki• Deep-rapid-dive .NET:iin alusta alkaen
• Epäilevä suhtautuminen ”välikoneisiin” alussa• ”Eikä tämä toimi edes Linuxilla”
Mikroyritys-yhteistyön-pohja:Kalle Launiala BIO
• 2005- ProtonIT Oy• Microsoftin viimeisimmät välineet, Gold-kumppaniksi• Mm. edelläkävijänä Suomessa .NET 3.0 (WPF) • Oman mikroyrityksen tuotteistusta• Nokian Visual Studio / Symbian työkaluissa mukana
• 2009-2012 Tietokarhu/VERO sovellusarkkitehti• Oma kehittäjätehostustaso jalkautettuna normitiimiin• ADM (abstraction design methodology) syntyi 2010
• 2010-2013 Citrus Solutions Oy & ProtonIT yhteistyö• ADM:n jalostamista liiketoiminnaksi• Pallo-alustan toteutus kevät 2012 – elokuu 2012
Pallon launcheja 2013-2014-
• 2013 TechDays – julkinen developer launch• HelloWorld, arkkitehdeille kohdennettuna
• 2013 syksy – italialaisen yliopiston gradu Pallosta
• Pilotointi koulujen kanssa ja yrityskentässä• CMS/julkaisu-alustana
• Jatkokehitystä Aalto-yliopiston kanssa
ADM & Pallo ovat siis - avoimia
• ADM pohjateknologiana, täysin avoin menetelmä• Pohjautuu XML:ään ja Visual Studion koodigenerointiin
• Avoimen lähdekoodin versio olemassa
• Pallo = ADM + semanttiset kirjastot ja hallinta• Pallo on looginen alusta, täysin avoin
• Pallosta on toteutus Azureen
• WP, Android, Raspberry-Pi clientit
• Kaikki avointa koodia...
Liiketoiminta-malli?”Konsultointi & koulutus” – ekosysteemikumppanien mahdollistaminen
Palloa ei voi omistaa, sitä voi vain hyödyntää – ja se tuottaa arvoa!
What to do next?There is something already happening...
”The Ball”Open Platform
• Designed for YOU OWN YOUR DATA• Enables information ecosystem
• Up and running with pilots• Businesses
• Schools
• Universities
• Developers / Hackers
• Open Source, for ANY use• Built in co-operation and open
collaboration• Anyone can run an instance
• In the cloud on Windows Azure• Massive scalability for whole
community-infrastructure
Identify YOUR role... And JOIN the community !