Posts tagged: Cloud

JVx with Codenvy (Cloud-IDE)

Post to Twitter

What is Codenvy?

In short, an IDE as online service or - with buzzwords - a cloud IDE. Some of the first questions were:

  • Who needs a cloud IDE?
  • Does a cloud IDE has enough features?

The answer to the first question could be: Developers without knowledge of environments. A cloud IDE simply runs, preconfigured with a compiler, preconfigured with a VCS, preconfigured build and or CI, deployment with one or two mouse clicks. If a developer does not know how he could configure all this things manually or with his IDE, he is a potential user of cloud IDEs.

As real software developer, you love your desktop IDE because it has all features... but some years ago, before we had Eclipse, Netbeans, IntelliJ or other IDEs, we used text editors and started compilers with scripts. I mean that features are relative because they will be more - it's a matter of time and number of users.

Another question was: Does it make sense to develop in the cloud?

It depends :)
If you develop web applications for end-users, you won't have problems with SLAs or confidentiality agreements? If you develop applications for business customers, you have to comply with contracts and data privacy. If you develop database applications, you must use a database available in the cloud.

If you develop in the cloud you should host everything in the cloud or make everything available in the cloud.

If you use a desktop IDE, you are the boss of updates and plugins. If you use a cloud IDE, the provider is the boss and updates whenever it's important or changes functionality whenever he wants. But you are always up-to-date.

An IDE in the cloud should be available on any device but is this important? Do you develop with your mobile device while sitting in your living room?

One fact is, that development in the cloud, is not as fast as local development (of course, if your environment is set up properly). Every task takes time and the performance of a Browser with Javascript is not really comparable to a native application, even if you you use Chrome. And another big disadvantage is that you can't change the environment. If you want to try different compilers, a different maven version or if you need a completely different project layout you'll have bad luck with cloud IDEs. If you want a new feature or different packages, you have to ask the provider for support.

I think that cloud IDEs are not an option for "pro" developers, but not every developer is a pro developer or needs much knowledge about complex environments. If a developer is more or less a "user", a cloud IDE will be an option.

What is a "user" developer?
(It's nothing bad!)

A developer without knowledge of environment configurations, without knowledge of build/CI systems. A developer that does not develop libraries or frameworks. Often a "pro" developer is also a "user" developer.

What has all this to do with JVx?

The creation of JVx applications should be as simple as possible and it should still be as simple as possible with cloud IDEs. Since we fully support Maven and have a JVx archetype, the creation of JVx applications - with standard IDEs - is very comfortable and super fast. We decided to try-out Codenvy because it looked very professional and had a clean GUI (similar to Eclipse). We tried Orion and had a bad feeling because it was a little bit hard to find out how it works, and finally it doesn't support pure Java projects (it currently supports JavaScript). The current Orion (2.0) IDE is more like a (very modern) remote file editor with JavaScript syntax highlighting and syntax check.

If a developer decides to use a cloud IDE, the IDE should be easy to use without a high learning curve (c'mon it's an IDE not a new programming language).

Our experiment with Codenvy

The IDE is free for open source projects (great for JVx) and so it was perfect for our tests. Our plan was to create a simple JVx application and run it in the cloud.

The IDE supports some project types and all are based on Maven because the build system uses Maven. It's possible to use preconfigured runtime platforms like Cloudbees. One problem is that it's not possible to create a project from scratch and add a target later. You must choose your target during project creation. Another problem is that it's not possible to use runtime platforms with Multi-module maven projects.

We decided to use the integrated runtime platform and didn't use another runtime platform. Not perfect but was OK for our tests.

We created a Multi-module Maven project and configured our modules. This was very easy with the IDE and build worked like a charm. Other problems were different restrictions dependent on your project type. It is not possible to Run a Multi-module maven project. It's possible to change the project type via properties, but that's not a good solution because it was not designed for tweaking. The next strange thing was that the UI has a lot of reload problems (endless reloads) and you have to close and open your project(s) to get full UI features for your project. The Run menu was not updated automatically.

The biggest problem was that the build system didn't build our project as usual or known from desktop IDEs. We had to find out how it works to deploy our application. The right build order solved our deployment issues.

At the end the deployment worked and it was possible to develop with the cloud IDE. One really big problem was that the integrated Java Editor did not show problems or code completition for our project. It worked with different project types but not with ours.

The IDE was easy to use because of many restrictions and assumptions how development should be, but it's absolutely not comparable with current desktop IDEs. Not because of missing features, it's because of given structures (predefined structures are important but sometimes they must be changeable).

At the end of our experiment, we had a working JVx application - developed in the cloud and deployed in the cloud.
Our project is available on github with some installation and usage instructions.

The result looks like:

JVx and Codenvy

JVx and Codenvy

Cloud IDEs

Post to Twitter

Our VisionX is not an IDE, it is designed for end-users. Of course, everything in VisionX is Source Code driven, but that is behind the scenes. Application Source Code is not relevant for end-users but very important for developers. An application export/import is included in VisionX and because of that a developer can work with preferred IDEs. But sometimes it would be great to change the application source code without IDE, direct in the browser.

There are some first attempts available in the web, for Cloud IDEs. Our favourite ones are

  • Orion

    It is an Eclipse project and tries to bring some parts of Eclipse to the browser. Currently it does not support Java development because its focus lays on Javascript. A big advantage is that you can download Orion and install it on your own Server.

  • Cloud-IDE

    It is currently in a closed beta phase, but the feature list looks very powerful. It supports Java development and looks like Eclipse light.

  • Others

    There are a lot of other Cloud IDEs e.g. Bespin, Cloud9 IDE, Coderun Studio, Kodingen, ... But they have no support for Java.

For VisionX it is important that a Cloud IDE supports Java. Currently only Cloud-IDE has support for it. Let's see how things evolve.

We don't plan our own IDE for VisionX applications because there is no market for another IDE. But we plan to integrate VisionX into other IDEs and/or support Cloud IDEs.

JVx in der Cloud

Post to Twitter

Seit gestern sind unsere Demo Anwendungen in der Cloud beheimatet. Unser bisheriges Demo System war nicht unbedingt für eine Vielzahl von Usern ausgelegt. Außerdem dachten wir ursprünglich, daß ein Demo System nicht so performant sein muss wie ein produktives System. Doch dieser Gedanke passt so überhaupt nicht zu JVx. Denn JVx unterscheidet sich von anderen vergleichbaren Frameworks unter anderem durch die Performance.

Damit JVx seine Vorteile voll ausspielen kann, war ein Umzug unbedingt erforderlich.

Das neue System ist in seiner Basis Konfiguration bereits für mehrere Hundert User ausgelegt und kann bei Bedarf beliebig skaliert werden. Das ist nur einer der vielen Vorteile einer Cloud.

Aufgrund des Umzuges wurden beim Tippspiel Packung nur die Benutzerkonten übernommen, nicht aber die Tipps, die erfassten Ergebnisse bzw. die manuell erstellten Turniere. Da es sich um eine Demo Anwendung handelt haben wir auf eine vollständige Datenübernahme verzichtet.

Weiters wird nun für die Showcase Anwendung die aktuellste JVx Version eingesetzt. Das bedeutet unter anderem ein verbessertes Meta Daten Caching und den Einsatz des Universal Serializer.


Post to Twitter

Schon länger im Gespräch, nun ist es da. Ein Java API für Amazon's Could: AWS SDK for Java

Weiters gibt es die Berkley DB ab 11g R2, von Oracle, nun auch für Android und die DB bietet zusätzlich ein neues SQL API, basierend nun auf SQLite 3.