Thursday, March 17, 2011

Comparing uniPaaS and Java: Can’t We All Just Get Along?

Recently, we conducted an interesting challenge with uniPaaS Jet. We asked an independent developer already familiar with Java programming and having no previous uniPaaS experience to download uniPaaS Jet, learn it and create a simple program using uniPaaS Jet. (We had earlier asked them to create the same program using Java.) We asked them to take careful notes of the resources required and the effort involved. uniPaaS proved itself more efficient in every category. uniPaaS used half the memory and half the file storage. uniPaaS required barely 1% of the logical lines of code and 7% of the physical lines of code. The uniPaaS program executed for the first time in 1/10th the amount of time. The applied effort was 202 hours in Java and only 3.2 hours in uniPaaS. The project duration was 2.63 months in Java and part of a single day in uniPaaS.

Our purpose in reporting these findings is not to engage in Java bashing or point out Java weaknesses, in fact uniPaaS is very Java-friendly. We have some Java developers in our R&D department. And most important we believe uniPaaS can offer much to Java development teams to provide them with tools that can take advantage of their investment in Java while providing them the kind of advantages experienced by the independent developer mentioned above.

The Java Integration built into uniPaaS allows uniPaaS to interface with a Java class or Enterprise JavaBeans (EJB) by using pseudo-references that represent instances of Java classes or EJB files. Pseudo references are an identifier representing the values from a class instance in a BLOB variable. Programs must pass this identifier to access the methods and variables of a class instance. A Java class is a template definition of the methods and variables in a particular kind of object. An object can be a specific instance of a class and can contain real values instead of variables. For integration to Java classes by a uniPaaS application, you can access static methods and variables without the pseudo-reference.

Java instances, static methods and variables are invoked by uniPaaS’s Java and EJB functions. In Java, a class instance is a specific implementation of the Java class while a static class method is a class method that can be called without instantiating the class. Likewise, a static class variable is a class variable that can be accessed without instantiating the class.

An Enterprise Java Bean (EJB) is an architecture for defining Java program components that run on a client/server network. The uniPaaS EJB Component Generator is a wizard that generates a component containing uniPaaS programs that call a Java class or EJB functions. A Java Native Interface (JNI) lets non-Java programs interact with Java programs. The Java Component Generator is a wizard that lets uniPaaS automatically access Java classes or EJB files by creating a component that eliminates the need to specify JNI signatures. You can also use uniPaaS to generate Enterprise Java Beans (EJBs). Clients operating within a J2EE environment are able to view and activate uniPaaS programs as EJB methods. You create the EJBs using uniPaaS’s Component Builder utility.

uniPaaS can create an instance of a Java class that lets you activate a method, or query and update variables using a pseudo-reference. The pseudo-reference is a BLOB variable that represents the Java class instance. When a method is invoked, the BLOB variable returns values to the uniPaaS program as function return codes. Class static methods and variables can also be accessed without having an instance of the Java class by using the class name and the method or variable name.

The uniPaaS Java functions are used to simulate the calling methods in Java. Each context of the engine internally maps between the pseudo-reference and the actual reference.

For example, a uniPaaS program can call the JCreate function to create a pseudo-reference as Virtual Variable A. The actual reference to the instance is then internally associated with Virtual Variable A. Any uniPaaS program in the context will be able to access the methods and variables of the object by using JCall(A,...).
The Java functions can be called by a uniPaaS program to:

• Create a new instance of a Java class
• Call a method directly from the Java class or from an instance
• Report and return exceptions
• Query and update variable values

The EJB functions enable uniPaaS to explore and invoke Enterprise JavaBeans.

I think the important message here is that uniPaaS can help Java programmers make efficient use of Java classes and EJBs while benefitting from the efficiencies of uniPaaS’ smart application development platform. For additional information access the Magic Software DevNet or contact your local office.

Tuesday, March 1, 2011

Get Rich and Fit: RIA Inside the Firewall

uniPaaS provides a comprehensive solution for Rich Client applications, sometimes referred to in the industry as Rich Internet Applications (RIA). While many assume that all the advantages of a RIA application stem from the benefits or need for remote application access, there are actually numerous reasons to consider RIA, or perhaps a better term, Rich Client applications, even when they will be running entirely within your own firewall on a Local Area Network (LAN).

uniPaaS is a platform for developing and deploying rich business applications serving n-tiered users based on Internet protocols. While the rich client approach uses standard internet protocols, this does not necessarily imply that application users are outside the firewall. In fact, uniPaaS RIA does not utilize Internet browsers such as Internet Explorer or Google Chrome but instead provides its own secure client to the user.

uniPaaS Rich Client Applications may be accessed securely, provide a fully interactive experience, and allow for automatic logic partitioning between clients and servers. User experiences are enhanced through an enhanced look and feel and accessibility of client-side resources in a browser free solution.

Developers benefit from a single unified IDE and development paradigm, performance-aware optimization during development and automated management of partitioning, communication and technical layers.

The resulting reduced Total Cost of Ownership (TCO) occurs because: there is no need for application-specific setups to access and run a Rich Client application; there is no need to manage the end-user's machine to accommodate application maintenance; and there is no need to install client-side software, such as Database-client and special printer drivers. Citrix servers are not needed to support RIA applications which can result in extensive long term cost savings.

Enhanced Interactivity and GUI. Rich client applications benefit from superior graphical and media capabilities as well as enhanced interactivity. This includes the ability to transfer and use files and resources from either the client or server. This enhanced document architecture enables superior enterprise content management and links between core enterprise applications and client side documents including knowledge worker productivity documents such as Word, Excel, PDF and other formats.

Enhanced Developer Productivity through Composite Applications Approach. With uniPaaS RIA, third-party .NET controls and assemblies can be used as the building blocks of applications. This reduces development time dramatically and provides access to enhanced, standards-based GUI experiences for users. Ability to incorporate standard controls enhances the openness of the , improves the user experience and reduces development time.

Fit Client. The Rich Client deployment mode allows for Server-Side Functions; Client-Side functions and Functions that can be executed on either the client or the server. Furthermore, RIA applications make better use of available computing resources. The Rich Client is neither a fat client nor a thin client. Through partitioning, you have what may be called a fit client, meaning that application functions may be executed on either the client side or server side. uniPaaS supports expressions on either the client-side or server-side. Developer functions are also supported on either client side or server side. This reduces the processing and memory utilization load on both the server and the client, and in the long-term makes for a lower cost , more energy efficient computing environment.

Parallel Execution. Several Rich Client programs can run simultaneously by using the Parallel Execution task property. For example, one program for employee management, and another for finance, all from a single entry point, without having to repeat authentication for each parallel program. Rich Client also supports MDI (Multiple Document Interface).

Mobile Application Support. Developing mobile applications with uniPaaS is based on uniPaaS RIA. The main difference between regular RIA and Mobile RIA is the consideration of the mobile devices’ view area and the expected user experience, such as touch screen and styles, and the deployment methodology. The RC Deployment wizard of the uniPaaS Studio simplifies Mobile deployment.

Hot Fixes and Updates. With Rich Client, the deployed uniPaaS application can be updated without the need to stop the application and log out all users. Known as “hot fixes” in the industry, this capability allows you to deploy your updates and fixes in a live environment.

Security. The Rich Client environment also has the advantage of reducing security administration and overhead. In a client server environment, there are risks associated with providing client access to servers. RIA applications interact at arm’s length and use secure encrypted communications and transport throughout.