Services


To improve the business operations of enterprises, there are 8 major trends in software development that will generate higher ROI for software services investments. These trends are:

Software Development Services:
  1. REST over WS-* (REpresentational State Transfer architecture vs. Web Services)
  2. Stripping down SOA (Services Oriented Architecture)
  3. Groovy grabs large market share
  4. Functional languages will gain momentum: F#, Scala
  5. Mobile devices will gain market share with respect to web apps: Gphone, iPhone, etc...
  6. The balance between server and client will shift back towards client
  7. JavaFX will take on Flash in ease of use and ubiquity
  8. OpenID will gain momentum

1.0 REST over WS-*

Rails 2.0 has chosen sides in the REST vs WS-* arena, and many companies at the enterprise level are exploring it aggressively as well. For example IBM's Project Zero is designed around the REST concepts and uses the Groovy and PHP dynamic languages to seamless map DSLs to RESTful actions.

2.0 Stripping down SOA

Closely related to the previous topic, SOA has traditionally been 'resting' on top of SOAP and the WS-* stack and all of its complexity. This has resulted in large, over priced components being pushed by vendors without adding much value to the IT infrastructure. Next generation SOA components will much more granular in scope and will be based on REST. Many implementations will offer DSLs built using dynamically typed and functional languages.

3.0 Groovy grabs large market share

Groovy, the dynamically typed language based on Java, has been slowly gaining momentum over the last five years and is now becoming the playground of the Java community for new features. In fact, many java proponents are arguing to stop introducing new features in the core java language and introduce them through Groovy instead. This fits in well with the polyglot approach of using the best language for the available for each task. In the case of most enterprise client server applications core Java would provide the best performance for the base container and the plumbing needed to communicate with the OS and the network, whereas a dynamic language would be a better fit for the controller logic and the domain model logic. Functional languages would then fill the gaps in the next higher level and provide a language much more suited for declaratively specifying business logic than the current XML based rules engines.

4.0 Functional languages will gain momentum: F#, Scala

F# has been introduced into .Net 3.0 and Scala is being picked up at a rapid pace by the Java community. Functional languages excel at describing business logic, especially when it concerns large lists or mathematical equations, and leading edge development shops will start taking advantage of these features instead of relying on trying to force overly complex XML syntax into a rules or business logic engine.

5.0 Mobile devices will gain market share with respect to web apps: Gphone, iPhone, etc...

Web 3.0 will be location-aware, environment-aware, and more agent-based than ever. As the phones we carry become more and more capable of powerful processes they will not only know our location but they will also have dozens of sensors measuring temperature, humidity, and even calories we consume. The latest round of phones from Nokia, Apple, and the latest GPhone specs are capitalizing on these features and web developers will need to start keeping these capabilities in mind as they develop their latest apps. In fact, Rails 2.0 already includes support for this and integrates it seamlessly into the REST model where it should be. Then, the developer can just specify the output needed for the various smart devices. Microformats are another piece to this as they allow these devices to hook into a common language and display the information appropriately, whether it's an iPhone that can display it using html, a VoIP phone that displays it on the LED, or a vending machine that displays it using whatever display a vending machine has.

6.0 The balance between server and client will shift back towards client

Todays clients are too powerful to have the server do all their work for them, and to achieve the best performance servers are starting to offload more and more of their work to the client. Google introduced a huge push in this direction with GWT, which effectively moves the controller, view, and a large amount of the business logic to the client side. This of course means clients need to be smarter, ie understand Javascript, the defacto language for client side scripting. JavaFX has some potential in this area as well however Javascript is by far the most widely deployed language available on the client side.

7.0 JavaFX will take on Flash in ease of use and ubiquity

With Microsoft's introduction of Silverlight and Sun's introduction of JavaFX the Rich Internet Application arena is going to be the stage of lots of battles in the next year over dominance of this field, traditionally owned by Flash. Sun, however, has given JavaFX a huge boost: the fact that it is open source, it runs on all platforms java runs on (every one), and it has access to all the java libraries (wich outweighs .Net and Flash combined by a large margin). Until now there has been a major road block however, the fact that Java has a large foot print and downloading and installing it takes time and isnt as painless as Flash has been. However, with the upcoming release of Update N, Sun is attempting to provide that same capability, installing a tiny foothold into the browser initially and getting updates as needed. This change to the Java classloader is very significant, and although it won't happen soon in the long run Java/JavaFX has a good chance of competing with Javascript (ECMAscript) itself.

8.0 OpenID will gain momentum

The big players on the web are slowly embracing OpenID, with AOL instantly adding all of its members to the list of OpenID users. However, what will really make this go forward are the mobile devices that will need to act as agents for their users. With one central location that can authenicate and autherize users, agents will be able to provide on the fly mashups from any source on the internet. For example, based on a users dining preferences a mobile agent will login using OpenID and grab a REST-based feed from a dining application and a mapping application, filter the results based on preference and proximity and give the user a display of what meals are available where.

© Copyright 2006 Ayoka. All Rights Reserved.