Future of Internet Technologies

Daniel Pavlić*, Mile Pavlić** and Vladan Jovanović*** *RIS d.o.o, Rijeka, Croatia **University of Rijeka/Department of Informatics, Rijeka, Croatia *** Georgia Southern University, Statesboro GA, USA [email protected], [email protected], [email protected]

Abstract - This Paper provides an analytical overview of the IT technologies that are currently available for the development of business internet applications. HTML, AJAX and Rich Internet Application (RIA) technologies are compared and the pros and cons of each technology outlined. Incompatibility issues of most RIA platforms with numerous devices and operating systems due to the so-called platform wars are described. A possible solution is proposed: Developing or using a new generation of RIA technologies which would preserve legacy application code and at the same time provide usability over the internet, a rich user interface and cross-platform support.

Keywords: Internet, thin client, Rich Internet Applications, RIA, Business Internet Applications, BIA, AJAX, HTML5, Figure 1. Smartphone market share future prediction by Gartner Adobe AIR, Silverlight, JavaFX, cross-platform, multiplatform, iPhone, Android, Windows Phone 7, a few commonly used devices and operating systems to Windows 8, Metro, platform wars the equation: Windows, Mac, iPhone, Android, Windows Mobile. Which platform to choose? Developers feel overwhelmed by all these new technologies and at the I. INTRODUCTION same time companies feel that their business applications This paper describes various technologies that can be are losing pace. used for developing business internet applications. Many But there is a solution. Some companies have been companies have been aggressively banning the use of creating their own RIA solutions. For example, a company other technologies to assure the dominance of their own called RIS d.o.o. from Kastav, Croatia, created a product platform on the market. which “takes the responsibility of caring” about new The paper describes thin client technologies, more technologies and trends, so that developers don’t have to. advanced solutions known as smart clients, as well as The product is called Thin@ - it consists of a set of tools technological solutions for the development of Rich which assist in transitioning Clarion [22] applications to a Internet Applications (RIA). The concept of AJAX has Thin@ Application Server, which is a RIA platform [2]. been compared to the concept of RIA. The purpose of this This product simplifies the transition of legacy business paper is not to compare all available Rich Internet applications from the desktop environment to the Internet. Application frameworks. II. RICH INTERNET APPLICATIONS Some of the most popular mobile devices (smartphones and tablets) include: iPhone, iPad, Eee Pad, The current trend is developing business Internet Blueberry, Slate PC. In the field of smartphones four applications with HTML-related technologies. However, operating systems are currently dominant on the market: HTML was originally created as an Internet-based Symbian (Nokia), Android (Google), iOS (Apple) and hypertext markup language that web browsers can use to Windows Mobile (Microsoft). According to a recent study interpret and compose static web pages. HTML does not by the Gartner group [1], the operating system that will allow partial screen refresh. This is possible only with the dominate the smartphone market by 2015 is Android, with introduction of JavaScript programming which can be a predicted market share of about 50%. Figure 1. clearly used to manipulate specific elements of a web page. demonstrates current trends as well as the projected The three-layer architecture prescribes the following market share of the four major players in the smartphone layers, (Figure 2.): business. 1. Database layer, e.g. a database server farm We live in exciting times, with many options and many new technologies for the development of business 2. Application layer, e.g. an application server farm applications. Let us mention a few commonly used programming languages and frameworks: PHP, ASP, JSP, AJAX, .NET, Silverlight, JavaFx, Adobe AIR. Let us add

1552 MIPRO 2012/CE 3. Presentation layer, e.g. the computer of the end thin client (or Smart Client) receives the GUI definition user, or more specifically, the software that is and renders it to the end user. Let us imagine that at this being used to render the application point the user performs an operation (e.g. clicks a button). The information about the user action is transferred through the network back to the application server, which then executes the code behind that button. Let us imagine Presentation layer that the executed code opens a new window. The GUI definition of the new window will be transferred to the client. Application layer Therefore, it is not necessary to separately program the client side to implement the ability to refresh only a part of the screen in browser. The client-side application in most cases does not have to be modified in order to Database layer support many features (such as partial screen refresh) that classic can’t do without additional client- Figure 2. Three-layer architecture of business internet applications side programming. This is a huge benefit of a RIA

Programming languages such as PHP or ASP can be used to dynamically generate HTML pages. HTML on its own does not enable the development of rich business applications. This is possible by using additional technologies such as AJAX (JavaScript API). The need to use several separate technologies makes the development of such applications time and cost-ineffective compared to the development of traditional desktop applications. The main problem is that it is necessary to create the server side (using programming languages to generate HTML) separately from the client side (using AJAX technologies Figure 3. RIA communication model to dynamically change parts of the screen and CSS for defining the GUI). application compared to web technologies. In order to solve this problem and remove the Some RIAs work only inside a browser, some can necessity of numerous programming efforts using various work both inside and outside of the browser, and some can different technologies, a special type of a RIA platform work only outside of the browser. and approach has been developed. The vision behind the new platforms is a single server-side development effort which enables running the application over the Internet Benefits of the RIA approach include the following: and on multiple platforms. On the client side there is a For developers: Write once, run (almost) special program which takes the description of the anywhere graphical user interface (GUI) and window events from the server and renders the GUI on the client side. This For end users: Rich User Interface program is commonly known as a thin client, and by extending its features it can be called Smart Client. The most popular RIA platforms include: Adobe AIR, Applications which operate in this way can be called Rich and JavaFX. These technologies Internet Applications [9]. Therefore we can introduce make use of different programming languages and use a terms such as RIA platform, RIA technology, RIA client, different way to create the user interface, but all three RIA server etc. A RIA technology represents a frameworks support running the application both in- development environment in which the application is browser and out-of-browser (OOB), OOB being a newer programmed for the server side and the same application feature. can be executed on the client side without any additional The Adobe AIR RIA platform has the following key client-side programming. features [10]: There are many definitions of a RIA, e.g. according to Programming language: ActionScript Wikipedia [20] there is a clear distinction between a Rich Client (used in a RIA) and a Thin Client: User Interface: MXML (XML-based user interface markup language) RIAs use a Rich Client deployment model (deployment of a compiled client application through a browser) rather Mode of operation: in-browser & out-of-browser. than a thin-client-server model (where the user's view is The Microsoft Silverlight RIA platform [11] has the largely controlled from the server). following key features: Figure 3. describes the way in which a RIA works. Programming language: .NET based The application is located on the server. The GUI definition is transferred from the server to the client. The

MIPRO 2012/CE 1553 User Interface: XAML (XML-based user server side separately from the client side, while using interface markup language) RIA technologies implies predominantly server-side programming. Mode of operation: in-browser & out-of-browser. Figure 4, based on a 2008 Gartner research [13], JavaFX RIA platform has the following key features demonstrates the trends of internet application [12]: development. The graph clearly demonstrates that some of Programming language: Different from JAVA SE the leading technologies for the development of business (possible future integration) internet application introduced the novelty of executing the application outside of the browser. This prediction by User Interface: JavaFX objects Gartner became a reality on smartphones, where most internet applications are indeed running outside of the Mode of operation: in-browser & out-of-browser. browser. These platforms simplify development because it is We can ask ourselves the following question: When to not necessary to program the server side disjointedly from use RIA and when to use AJAX? The advantages of the the client side. Without technologies of this type we RIA approach, tools and platforms can show their full would be forced to develop business internet applications potential in the development of complex business by combining HTML and other client-side technologies, applications. AJAX-related technologies on the other side and use other programming languages on the server side. are better for the development of websites such as portals Let us examine this set of technologies, often referred to or blogs and for the development of simple web as web technologies. applications. Both RIA and AJAX have their place and We can ask the following question: Is HTML a RIA role. However, AJAX-related technologies are not technology? The answer is – no, it is not RIA because sufficient for creating business internet applications. HTML is static. In order to solve this problem, JavaScript is used in combination with HTML. III. PLATFORM WARS What is the relationship between AJAX and RIA? Various IT companies such as Asus, HP, RIM, AJAX stands for Asynchronous JavaScript and XML. It is Microsoft, Google, Oracle, Apple, Adobe and others a combination of mutually related web technologies which compete against each other to gain as much as possible of are used on the client side to create asynchronous web the market share. One of the strategies they use is applications. With the help of AJAX, web applications developing new operating systems, new programming can send and receive data from the server and to the server languages and new devices. Some of the most common asynchronously and without interfering with the current operating systems include: MS Windows, Apple iOS, display of a webpage. AJAX is often used in combination Apple OS X, Linux, Google Android, QNX, Palm OS. with CSS, HTML and XML technologies, although this is Some development frameworks and programming not a necessity. languages include: JSP, ASP, AJAX, PHP, .NET, Flash, Objective C, JavaFx, Silverlight, Java ME, APEX, Adobe On the server side the following technologies are AIR, PL/SQL, Java SE. commonly used to generate HTML: PHP, ASP, JSP, APEX, etc. The main principle of many IT companies mentioned above is exclusivity. This means that an internet Although with AJAX it is possible to develop application written for e.g. Apple iOS in the Objective C applications that have a rich user interface, RIA programming language can only work on Apple products. applications have a runtime program on the client side (thin client or Smart Client) which executes the Similar cases are becoming more and more common with products from other companies as well. Let us take application in real time. Using AJAX technologies to Google Android as another example – although it is using develop internet applications implies programming the the Java programming language, about 50% of the standard Java libraries are not supported on Android. Since the majority of Java applications use the Swing library (which is not supported), this also means that the majority of existing Java applications can’t be easily adapted for the new platform. This might look normal, but it creates significant problems to independent software companies that are trying to create applications for the global market. Let us look into the legal battle between Oracle and Google. Oracle bought Sun and thus became the owner of Java. Google took the JVM and created the Dalvik VM for their Android OS, which can’t run about 50% of Java libraries. This created problems to Java developers, and Oracle sued Google for patent and copyright infringement [3].

Figure 4. Trends in internet application development

1554 MIPRO 2012/CE to right this wrong… I’m going to destroy Android, because it’s a stolen product. I’m willing to go thermonuclear war on this.” Also, the following sources [16], [17], [18], [19] contain indications of the late S. Jobs’ desire to destroy Android, as well as quotes where he declares that Apple will not support Java or Flash on the iOS. Adobe tried to create the “ultimate application platform” (Adobe AIR) which was intended to work on all devices and operating systems. Of course, Apple, Google and Microsoft did not like this (it is rumored that Microsoft started creating their own RIA platform – Figure 5. Windows 8 Platform and Tools Silverlight, as a reaction to Adobe Flex). It is a fact that Apple banned the use of The Microsoft mobile platform – Windows Mobile 7 technologies on iOS; Android does not support many OS – can run applications written in .NET and Silverlight. standard Java SE libraries; Windows Phone 7 does not However, it does not support the execution of applications support Flash or Java; and the new Windows 8 Metro will written in Java ME or Flash. In this way Microsoft closed not support any browser plugin – including Microsoft its mobile platform to everybody except the users of Silverlight. Microsoft development tools, similar to what Apple did before them. The new Windows 8 OS (see Figure 5), Therefore we can state that major IT companies such which is scheduled for release in 2012, is introducing new as Apple, Microsoft and Google are indeed accountable Metro-style applications. Metro applications use the new for the problems that developers are facing today. They WinRT API [4], which is a successor to the Win32 API. strive to conquer the market with their products and at the Microsoft no longer considers .NET or Silverlight as their same time prevent the use of products from other vendors. strategic platform, and the only option left to their buyers is to adapt and learn new technologies. Microsoft already The question is – how to solve this problem and which did this several times in the past. development environment to pick so that we do not have to learn new tools and rewrite existing applications for Due to unceasing change in development technologies other platforms? A new approach in RIA development and incompatibilities between various vendors, businesses gives us hope. are forced to rewrite their existing applications and therefore developers are forced to endlessly learn new IV. NEW APPROACH IN RIA DEVELOPMENT technologies. This situation ties them down to their workplace as it is demonstrated on Figure 6. For example, Due to a complex IT business climate in which Android development requires learning from sources such numerous mutually exclusive platforms are currently as [5], [6], [7], [8] and a long time to reach significant popular, a global trend is developing native applications business results. for all these platforms. This is both time consuming and cost-ineffective. Plenty of evidence to support the platform wars theory can be found. According to a new biography on Steve The platform wars incapacitated leading software Jobs from Walter Isaacson, apparently, Steve Jobs really vendors from providing a RIA solution which would work hated Android. Here's the quote straight from Steve Jobs' on all devices and all operating systems. Therefore, some mouth: companies have taken a completely different approach – they are creating RIA platforms that attempt to work on “I will spend my last dying breath if I need to, and I all platforms. Along with the ability to work over the will spend every penny of Apple’s $40 billion in the bank, Internet and the richness of the user interface, which is at the core definition of any RIA platform, other important goals include allowing developers to create the application only once and still be able to execute it on all platforms and use native capabilities of the specific platform. One such product is Thin@, created by the company RIS [2]. Thin@ enabled RIS to quickly transfer their application portfolio (15 years of development, applications totaling millions of lines of code). Without almost any additional programming, knowledge that is contained in the source code became available to end users over the internet. The company is currently developing a RIA client written in Java SE which will be able to deliver the application to the Mac OS and Linux platforms, in addition to the original Windows platform. RIS also plans to develop one or more clients to cover the mobile platforms. Figure 6. Developers as slave of their workplace

MIPRO 2012/CE 1555 MagicSoftware reached even a higher level of RIA rendering the application on any client platform. software development. The company created a series of Therefore, the same application can be used on e.g. a smart clients, each used to support a specific mobile Windows or Android device. platform [14]. Instead of rewriting existing application for various Some of the advantages that RIA solutions of this type mobile platforms it is possible to develop a RIA client for bring to software development companies include: every such platform, or buy it if it is available. The Smart Clients enable running the application on various Once developed in a one programming language, platforms. Some companies are already on this path. the application does not have to be rewritten in other programming languages. Is Adobe going to transfer their RIA platform to the HTML5 environment? (Although HTML5 legalized the Developers do not have to continuously learn new tag so that plugin content to HTML5 pages can programming languages and tools – the work day be done without current problems, most RIA frameworks of a developer can be 8 hours and not all-day still require a client-side runtime (e.g. Silverlight or Adobe work. AIR runtime). These runtimes are not supported on most The company becomes independent from new mobile platforms such as iOS, Android etc.). uncertain IT business climates (due to platform However, in HTML5 there is a new element wars major IT development solution providers which could, in theory, be used as a replacement of, for cannot provide stability). example, the Adobe Flash Player or any other plugin. However, the element does not have a built-in Their customers are satisfied with a quick and stage graph [23] and is still missing an engine that would seamless transition from the desktop environment enable easy creation of objects such as windows, controls to the Internet environment. etc. Some of the disadvantages include: For example, let us imagine this scenario: Adobe is currently working on a wrapper engine and API for the A relatively small number of this type of solutions canvas element which they plan to use with their new RIA exists on the market, and only a few programming client (replacement of Adobe Flash Player). This new languages are supported. This makes it client would enable running Adobe AIR applications on improbable that there is a solution which supports any platform and device without any limitation. the programming language used by the company. Although this is pure speculation, it would make The company depends on the solution provider for perfect sense. After all, the “weak spot” of Adobe AIR continuous support. RIA technology is not the server side, but the client side, Another possible resolution of the platform wars is and the element would be a perfect replacement adopting the HTML5 standard. HTML5 brings a new for the Flash plugin. (semantically enhanced) structure of HTML pages. Are the major players going to adopt new standards? HTML5 is also frequently mentioned in the same context Are they planning to use the so-called embrace and extend with other HTML5-related technologies such as CSS3, strategy (implement a modified version of the standard on new JavaScript APIs, etc. It seems that IT companies such their platforms to make sure they become incompatible as Microsoft, Apple, Google and Adobe are hoping that with other vendors, but only after attracting enough HTML5 will create a neutral ground for the development developers)? [21] When will all this happen? It is hard to of multiplatform rich internet applications. However, it is predict what the future carries or how the ongoing battle questionable when (and if) such HTML will be available. for IT market dominance is going to end. HTML5 is currently operational, but still not accepted by the W3C as a standard. Ian Hickson, in an interview for A long-term solution would be a comprehensive TechRepublic, predicts that this will not happen before HTML5 standard which would enable effortless creation 2022, maybe even later [15]. of multiplatform Rich/Business Internet Applications. However, it would seem that we will have to wait for a This suggests that the IT industry will need at least long time for such a solution. The only option that another decade for widespread adoption of a technology companies have at the moment is either using some of the that should enable the creation of multiplatform rich commercially available multiplatform RIA solutions or internet application. However, we expect to see the first developing such a solution on their own. practical results in the next few years.

REFERENCES V. CONLUSION [1] http://www.gartner.com/it/page.jsp?id=1622614, na dan Every developer’s dream is the existence of a single 19.01.2012. programming language for the development of [2] http://www.thinetsolution.com/, na dan 19.01.2012. multiplatform internet applications. A RIA technology [3] http://news.cnet.com/8301-30684_3-20013546-265.html, na dan that works on every platform is needed in order to make 19.01.2012. this dream a reality. This type of RIA technology provides [4] http://en.wikipedia.org/wiki/WinRT, na dan 19.01.2012. developers with the privilege of not having to worry about [5] E. Burnette, Hello, Android, USA, North Carolina, Raleigh: the client side and they can focus on server-side Pragmatic Programmers, 2010. ISBN-10: 1-934356-56-5 application development. The RIA software is capable of

1556 MIPRO 2012/CE [6] J. Friesen, Learn Java for Android Development. USA: Apress, 2010. ISBN-10: 1430231564 [7] S. Komatineni, D. MacLean, S. Y. Hashimi, Pro Android 3. USA: Apress, 2011. ISBN-13: 978-1-4302-3222-3 [8] J. Steele, N. To, The Android Developer's Cookbook: Building Applications with the Android SDK. USA, Crawfordsville, Indiana: Addison-Wesley, 2011. ISBN-10: 0-321-74123-4 [9] http://en.wikipedia.org/wiki/Rich_Internet_application, na dan 19.01.2012. [10] http://en.wikipedia.org/wiki/Adobe_air, na dan 19.01.2012. [11] http://www.infoworld.com/d/developer-world/ developer- dilemma-does-silverlight-have-future-255, na dan 19.01.2012. [12] http://en.wikipedia.org/wiki/JavaFX, na dan 19.01.2012. [13] http://www.gartner.com/id=846912, na dan 19.01.2012. [14] http://www.magicsoftware.com/en/, na dan 19.01.2012. [15] http://en.wikipedia.org/wiki/HTML5, na dan 19.01.2012. [16] http://www.androidtablets.net/forum/android-tablet-news/24882- steve-jobs-hated-android-so-much-he-vowed-destroy.html [17] http://www.zdnet.com/blog/burnette/jobs-no-java-for-you/238 [18] http://pogue.blogs.nytimes.com/2007/01/13/ultimate-iphone-faqs- list-part-2/ [19] http://www.wired.com/epicenter/2010/01/googles-dont-be-evil- mantra-is-bullshit-adobe-is-lazy-apples-steve-jobs/ [20] http://en.wikipedia.org/wiki/Rich_Internet_application [21] http://www.theregister.co.uk/2010/09/09/microsoft_html_5/ [22] http://en.wikipedia.org/wiki/Clarion [23] http://macomeq.com.vn/2011/07/16/canvas-element/

MIPRO 2012/CE 1557