Full JS version available on http://kenwalker.github.io/JAXConfUS2013
The natural progression of Web and Cloud development tools is to have the features needed to develop your cloud application or Web site available right in the browser. Orion is an open source tools integration platform that provides the consumable core components of an extendible Web-based Development Environment. Why spend developer time and money configuring and setting up a standard IDE when project tasks can be aligned with a dynamic client-side plugin architecture that provides the functionality needed all in a browser refresh. Orion leverages a secure client side Javascript plugin model to extend the platform by integrating other web pages and services into the Orion development workflow. Close integration is achieved through writing Orion plugins to extend the platform with additional capabilities. Extensions such as code outliners, code markers, code completion, error reporting, additional file system services and visual editors can leverage the micro-service framework, security and preferences systems. Plugins to deploy and manage Cloud based systems like CloudFoundry or Google App Engine can easily be integrated as well. What used to be a long setup period to get your IDE into the right state is as simple now as opening a browser, wherever you are and logging in. Deployment options for Orion include a multi-user Java server or a stand-alone Node.js npm install. In a minute you can be writing, testing and deploying right from a browser. We also host our stable development builds at http://orionhub.org for anyone to try the technologies we're building. This session will outline the technologies behind Orion, together how they can be used as a development platform, and individually how you can benefit from the Open Source artifacts of Orion in your own projects or how to join and contribute to Orion like companies such as IBM, VMware, Mozilla, Google, HP and others are doing already.
OpenShift Commons Paris - Choose Your Own Observability Adventure
Cloud development goes lightweight - Ken Walker
1. Cloud Development goes Lightweight
The Open Source Orion Project
JAXConf US ‑ Jun, 2013
/ /
Orion Project Lead
kenwalker.github.io @kwalker @orionhub
Start editing this talk at OrionHub.org
2. In the beginning...
Inside IBM Orion was started by some of the Eclipse Team members from
SWT & the Platform team
The goal was to begin working on a platform to support the growing
initiatives for Cloud
As IBM is a founder of Eclipse, we wanted to leverage our experiences,
investment, and the governance model
IBM made the initial contribution of Orion components in January, 2011
3. Why Orion?
Fundamental change from other Eclipse projects
Shift to Web based application development/delivery
Replace complex IDE pages with Web workflows
Provide the pieces as a whole or consumable by Web teams in product
(IBM and others)
Orion is an onramp for IBM teams & Community
4. Are developers really moving to the cloud?
The rise of products like Cloud9 & CodeEnvy indicate there is a desire for
hosted development solutions
Progression to other CloudBased tools, Gmail, Dropbox, GitHub, Ohloh,
CloudFoundry, AmazonWebServices
“Developers are still skeptical of online tools but
understand the complex nature of IDE setup has to
change”
5. How can Orion satisfy developers?
Follow a set of design principles, be agile
Embrace the modern browser capabilities
Create a platform that’s extensible
Create web components that are consumable
Enable cross‑site workflows & integration points
Create a suite that provides what desktop tools do
...all in a browser
10. How are these pages constructed?
Orion has many page templates by default
Provide initial functionality for developers
Product teams can start with existing pages
Orion provides extensibility points to plugins
Extensibility is what sets Orion apart!!
11. Extensible in the browser?
"plugins" live right in the page
Agnostic to where the plugin or code came from
No lock‑in to plugin providers
12. How are plugins implemented
JavaScript implementation of OSGi Services API
Uses Promises for return types and follows the Lifecycle and Bundle State
semantics used for Plugins
Implementation of Configuration Admin and Metatype for Plugin Settings
and Schema
‑Isaac Schlueter
“ OSGI seems like overengineered Java stuff. I'm
generally pretty skeptical of big frameworks that
do everything for everyone. Usually they're a big
pain. ”
13. Example JSBeautify Plugin
You provide html, javascript elements, from your site
In this case served up from a GitHub account
26. Orion Java Server
Orion is available as a stand‑alone Java based server or WAR file that
takes 2 minutes to setup a multi‑user cloud based development platform
Those wishing to extent the Java server directly can write Eclipse plugins
to surface RESTful APIs to the client
27. Orion Node.js Server
Also available as a based application, with less functionality, but
full editor, search capabilities, node start/stop/debug and npm
commands
Very portable and great performance
Deploy anywhere Node is installed
>npm install orion
>npm start orion
Node.js
28. Need another server platform? Write one
Chris McGee working on a Go Development platform
Wrote the file system and search API in Go
Added extension plugins for build and format
29. Orion on Mobile
Tablets such as the iPad, iPad mini and Google based platforms are also
supported by Orion
Not specifically written responsive but we're working on it
30. A globally accessible web tool
i18N built in the core, the UI and in the plug‑ins
Text editor capable of both Double Byte and working on Bidi
Working to be fully accessible
Orion provides a plugin for Externalizing strings to bundles
31. Available components and shims from Orion
Promises/A+ cancellation and progress, W3C URL, W3C Web
Components, HTML Templates and Custom Elements, JavaScript APIs for
OSGi
, , ,
, , ,
,
All under the EPL and EDL
Orion Deferred Orion HTML Templates Shim Orion URI Templates
Orion URL Shim Orion Plugin Registry Orion Service Registry
Orion XHR Implementation Orion Node Deferred File System
Stand‑alone Editor (follow stable links)
32. What's Next?
Really up to the community and the development needs
Need to finish the work on Projects
Research and others working on improved JavaScript tooling
Completing editor keybindings for Emacs and vi
Desire to support compiled languages (through services on the server)
Complete the scalability work on the Java Server
Add additional capabilities to the Node.js Server
Continue to work on offline modes
33. Find out more
Read our blog at
Check out the
Lots of information in the
Subscribe and contribute to the
Create an account and try it at
/ /
Orion Lead and Orion Dev Lead at IBM Canada
Planet Orion
Orion BUZZ
Orion Wiki
Orion Dev List
OrionHub
kenwalker.github.io @kwalker @orionhub
Start editing this talk at OrionHub.org