Presentation of JIO at Shenzen 2013

1/ Last mount Nayukeji presented, at TechCrunch Shanghai. OfficeJS is a html5 application store. Today I'd like to bring to you a problem HTML5 developer are facing. 2/ Suppose that a developer wants to develop a Javascript application that is compatible with most Cloud providers... 3/ First he needs to read the api documentation and implement it into his application (amazon S3). It'll take 10 days to have a working system. Then he will redo the whole process for the next cloud storage (Dropbox), If he wants to use Qiniu 10 more days, etc... If 50 cloud storage provider -> 500 days. This is what we call a developer nightmare. 4/ Suppose that the same developer wants to be compatible with most Content Management System... 5/ He will procede the same way. First he will read documentation and implement it (drupal). 10 days. He can use CMIS, but it is not widely spread. 10 more day.... In the end the developer will spent 2 year only on interfaces and not on his application. All These API are still under active development, so every year this developer will need to spend half a year to update his interfaces. This is a real developer nightmare because it prevents interoperabilty at reasonable cost. .... Now, before going any further I will set-up my demo. Here in my hand I have a RikoMagic Server running a full ERP system for small to medium company. In my other hand I have a company router I will use for wifi access to the server. Now, I will plug them with USB into my computer for power supply. First the router. Then, the server. .... Ok, now we can continue. So we where facing a problem, having a html5 application working with most cloud storage provider and CMS. 6/ Suppose now that all this is possible by learning only one simple API... 7/ JIO One API for all clouds. Based on CouchDB API, it works with 5 simple methods. - jio.get: to get document - jio.put: to update document - to create document - jio.remove: to remove document - jio.allDocs: to query the document list. So How does it work. The html5 application use this 5 methods to work with Jio. And Jio use specific connector to communicate with storages. 8/ Why do we need Jio: To offer cloud better than cloud. With jIO we want to offer entreprise grade quality: - Indexing: fast query - Splitting - Encryption: security - Online and Offline work - Replication -> Trade secret + better perfomance 9/ I won't detail the api, but we have documentations, I'll give the link again at the end of a demo. 10/ I'll show you how we use it. For the demo, I'll start with a simple Task Manager. We presented it at techcrunch. The task manager itself is not very intersting, what is intersting is the design. Based on standard HTML5 Use Jio for storage/CMS access -> easy storage access Use Jquery Mobile for rendering - > works on all platforms, all browsers 11/ Now to access it: have iphone, android, desktop? Access wifi parameters, change to officeJS (the wifi of the company router) Please go to a recent browser (I do the same on laptop) and access url: Do you have it? Add a task. See that the task appear. Close tab and reopen (you can even reboot phone). Task still here. It is using local storage. 12/ Now what if i want to save it online to share it among my devices/browsers? As we are here let's use Qiniu. (I have a Qiniu account. See bucket. I go to setting, and add storage acces. No task so far (my bucket is empty). I'll add one. 2 files in my Qiniu bucket, one is index, the other one document. Now I add a second task. It appear in task list. I go to Qiniu, new document. I dowload one document.). It is store as JSON. (I download and open index). Index, referring to files. So thanks to that I can synchronise my application data. Now let's see how we push data on Qiniu in application. 13/ One method. Same code for all storage. No reference to Qiniu nor local. My code is independant of the storage I use. 14/ So now, let's push forward the idea. Let's build a CMS in html5. Here is the architecture. CMS interact with jIO. jIO store and fetch data from LocalStorage, Qiniu... using its connector. (I go to browser and show CMS in JS) A Title, a list of document. If I click a document, I get its content. So let's see how it is made. (I show source code). Small html5. I import jIO libraries, have a tilte, two elements (one for index, one for content), and I call a script. Let's see the script. Here is how I configure my jIO storage using local storage (I previously pushed document in it, so no function to push it). Here I create (not used). Here I fetch documents, Here I build index, Here I display content. Now I'd like to show you how it works in live. (I go back to website, open developer console. I copy configuration. create storage, push document, reload, here it is). Now I'll do the same with Qiniu, for that I need to modify the JS code. My website is host in SlapRunner PaaS, the same we run on rikomagic server and it is being deployed at Hangzhou Dianzi University. Here it is. In it I can monitor process, deploy new component, etc... Here I'll use the file manager to acces and modify my JS. (I open the JS file). I have a confession to make, I do not know how Qiniu API works, but I copied configuration and file from the task manager here. (I do the change to use Qiniu by only uncommenting Qiniu configuration and commenting local storage configuration, save, reload). Here is the data, it is different. Now, I'll add a document. (I open console and do. I reload) Here it is, new document is also in Qiniu. So I built a simple CMS in JS using Qiniu as a remote storage, and you see that If I want to use another storage I just change my jIO configuration, the application code never change. 15/ To conclude. We saw two things today: jIO: One Simple API for all clouds in all countries (If I'm here I use Qiniu, in USA dropbox, in europe OVH) - I do HTML5 application: I only host static file in a small server and use a CDN service (we provide of 0). With this I have scalability at 0 cost and because HTML5 is Standard it works on all PC, all phone -> all platforms, all screen sizes. With application using jIO and HTML5 I can offer flexibility and scalabity at 0 cost and save 10.000.000 RnB for my startup. So If you want to learn more about jIO you have the documentation here and to know more about HTML5 application development you can look here. jIO is currently under active development, it use LGPL License and we are looking for contributors and feedback. Thank you for your attention
  • Last Update:2017-01-13
  • Version:006
  • Language:en