Tuesday, August 31, 2010

uniPaaS and the End User Experience

Every industry has “planned obsolescence” and the software industry is no exception. Business applications age quickly. Every few years, the look and feel of computer operating environments takes a leap forward. This causes a ripple effect as software development tools and the applications previously created by them for older operating systems lag behind the new capabilities and begin to seem old and tired to users who learn to expect the new look and feel.

But the user experience in a software application is established by more than just graphical look and feel issues. The end user experience is also highly dependent on deployment mode, interactivity, multiple users and the fundamental transactional capabilities of the system.

The end user experience is bound by time and place: where are you when use the application, how are you connected, are there other simultaneous users? Your options for time and place are determined by your deployment mode. The uniPaaS application platform allows for several deployment modes including desktop, client-server, browser-client, Web, RIA and Mobile.

uniPaaS Applications are capable of delivering highly effective and satisfying user experiences:

Fully Functional Business Applications.
A uniPaaS application is ready for business. Applications are designed to give users all the basic capabilities they expect and need when using an application based on their user profile.

  • Create – Add a new record.
  • Read – Read and view any record.
  • Update – Modify any field or record.
  • Delete – Ability to delete an entire record.
  • Zoom – Drill down from any field to related data views.

    Easy User Generated Reports.
  • Design your own reports
  • Load reports created by other users
  • Duplicate reports and then modify them
  • Run , View and Print reports at any time.

    Fast, Highly Responsive Applications.
  • Event-driven architecture for interactive user experience.
  • Scalable across multiple servers
  • Native database gateways
  • High speed transport layers over the Internet for faster response.
  • Ability to run server side of applications on high performance operating systems such as IBM i, AIX, HPUX, Solaris and Linux.
  • Multi-threaded and partitioned architecture for faster processing of unlimited multiple concurrent users.
  • Connected to the outside world through secure Web Services and other approaches to interoperability.

    End User Expression Editor.
    Can you imagine what it would be like if you had to call a programmer every time you wanted to change one of the business rules used by your application? With uniPaaS, an end-user can be authorized to zoom into an expression from a range field and then edit functions and variables themselves by accessing them from the pulldown and context menus. The function types available to end users are: Numeric, String, Basic, Date and Time and Variables (except the VarSet function).

    Browser Client Applications.
    One type of application in uniPaaS is called the browser-client application. This means that the software application is running inside the browser but is not based on standard coding of the World Wide Web (called HTML). Frequently used tables can be cached on the Client side.

    Windows Style and Controls.
  • Windows look and feel with new uniPaaS controls
  • Tab Control, Radio button, Check box
  • Rich support of graphical user interface (GUI) properties
  • Windows themes settings are reflected in uniPaaS windows.

    Enhanced GUI Controls.
  • Tables
  • Hot Tracking, column reordering, frozen columns, context menus per column, persistent data.
  • Check Boxes and Radio Buttons
  • Multi lines, jointed, images radio buttons, 3 states
  • Tab Controls
  • Multi lines, images in tabs
  • Tabbing order for the cursor is independent of the declaration of variables.
  • Every window can remember the modifications made by the user (change size, position, column order, etc.)
  • Enhanced Windows Controls (Tab, Radio Buttons, Push Buttons).

    Multi Display Interface/Single Display Interface.
  • Parallel execution of tasks can be displayed as a regular MDI child window or as a whole new SDI window
  • Each concurrent context can keep its own transaction
  • Concurrent tasks can interact with each other

  • New menu structure; any menu can be pull down or pop up.
  • Enable\disable sub menus on the fly.

    Status Bar.
  • Construct your own status bar
  • Manipulate each panel
  • Hide\show the status bar dynamically
  • Keep Status bar state per context.

    Rich Internet Applications (RIA).
  • Accessible from anywhere
  • Browser-free
  • Rich level of interactivity and design
  • Superb performance
  • Extremely Secure
  • Easier and Less Costly to Deploy New Versions.

    Handheld Applications for Windows Mobile.
  • Same advantages as RIA
  • Can be used on small form factor Mobile devices.

    Rich .NET Controls.
  • uniPaaS Can Now Use any Microsoft .NET Assembly (easily available building blocks)
  • Much easier than programming with MSFT tools

    Secure User Experience.
    A uniPaaS application identifies each user through advanced industry-standard security methods and allocates access to only those sections of the software where the user has been authorized by the administrator. Users are assured of a secure computing experience through the use of programming approaches such as secure Web Services, Secure FTP, HTTPS, SSL, advanced data encryption and multiple other measures.

    Rock Solid and Reliable Business Applications.
  • High degree of operational integrity.
  • Full support for transaction types.
  • Excellent error recovery and error messaging capabilities.

    See the uniPaaS RIA demonstration application here.
  • Friday, August 27, 2010

    Ten Secrets of Building RIA Applications using .NET Programming in uniPaaS

    When most people think of .NET programming tools for RIA, they instantly think that they are going to have to get involved in learning SilverLight programming and one or more of the several languages in Visual Studio. While this may be appealing to hard core coders, those developers looking to streamline development of highly functional and interactive Rich Internet Applications now have a better way: uniPaaS RIA applications in .NET.

    While this entry is titled “Ten Secrets” it should probably be entitled “Ten Fundamentals.” There is really only one secret and that is how easy it is to leverage .NET programming in a Magic RIA application. The ten concepts covered here are fundamentals of using .NET capabilities within uniPaaS.

    The .NET framework provides for .NET assemblies. A .NET assembly is a logical unit of code that is available as an .exe or .dll. It contains code that the .NET framework common language runtime (CLR) executes.

    1. Defining .NET Variables.
    After loading a .NET assembly in uniPaaS, you will be able to work with any of its objects and methods. .NET assemblies are loaded into the Composite Resource Repository (CRR) in uniPaaS. You can then define a .NET variable for use in uniPaaS and then add the variable to a form in your RIA application and set its properties.

    2. Controlling .NET Properties.

    When working with .NET objects they have properties such as free-form text, numerics, or objects. The properties of a .NET object are can view and use the properties development scenarios where you need these values, such as calculations, for a display in a Verify operation so on. You can see the relationship between .NET types and uniPaaS types in the table below.

    uniPaaS Type .NET Type
    Numeric SByte, Byte , Int16, Uint16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Decimal, Single, Double, Float
    Alpha Unicode Char, Char[], String, StringBuilder
    TimeDateTime, TimeSpan
    BlobByte, Byte[], Char, Char[], String, StringBuilder
    VectorICollection (only from .NET to uniPaaS), IList and objects that implement Indexers through the usage of 'this' keyword. Only indexers that have integer indexes uniPaaS only converts simple vectors and not multi vectors

    3. Using the DNSet() Function.

    The uniPaaS DNSet() function is so named because it allows you to set the properties of a .NET (.NET=DN) object. In addition, you can directly access .NET in the expression editor with the expression prefix DotNet.

    4. Use .NET Aliases.

    OK, maybe this is a secret. .NET naming conventions are long and obnoxious as many of the assemblies have a very long path. uniPaaS allows you to define aliases in .NET so you can access things more easily. uniPaaS also includes a type-ahead / auto-complete capability but aliases often work better because too many .NET names have the same beginning.

    5. Using .NET Methods.

    Most of the .NET objects perform a variety of actions such as trigger events and run methods. When using .NET within uniPaaS, uniPaaS can respond to the .NET events and can activate .NET methods.

    Just like with uniPaaS objects, a .NET object can trigger events during runtime. When using a .NET object within uniPaaS, it is possible to handle the .NET event in a very similar way to handling a uniPaaS event. This means you can handle the various methods in the .NET object.

    It is not recommended to run a method where it will be evaluated often, such as in the property of a control. This will impact performance. Likewise, you should avoid using .NET methods that conflict with the internal uniPaaS methods as this will likely not yield the desired results.

    At times, you will need to specify which .NET type you want uniPaaS to use since .NET allows method overloading where a .NET class has more than one method with the same name. To specify which .NET type you want uniPaaS to use, employ the DNCast() function in uniPaaS.

    6. Trapping .NET Events.

    As a uniPaaS developer, you are already familiar with event driven programming. With many .NET objects, you will find that they expose events that are triggered during runtime. Some common events are available in most .NET controls, such as OnMouseClick, and some others are unique to a specific control. In uniPaaS you can trap for .NET events and handle them in order to interact in specific ways with that .NET object. And of course, events can be propagated so that they can be handled by parent tasks as well.

    7. Working with Constructors.

    uniPaaS allows you to get or set properties and use methods and events that are published by the object. A .NET object must be instantiated to be usable.

    When using .NET within uniPaaS, the instantiation of a .NET object is done automatically for all .NET objects that you placed on a form. When creating the Rich Client Display form, uniPaaS creates an instance for all of the form's .NET objects.

    However, when a .NET variable is not placed on a form, it has not yet been instantiated, which means you should do so using a “constructor”. A constructor instantiates and initializes an object. Constructors are methods in which the name of the method is the same as the class itself. For example, the StringBuilder object therefore has a constructor named StringBuilder(). The Magic University course “.NET Programming with uniPaaS” will provide the guidance you need to follow in order to place a constructor properly within an application.

    8. Defining a .NET Array.

    A .NET array is similar to a uniPaaS vector. Therefore you will understand intuitively that an array is a variable that can hold multiple values of the same type. In contrast with uniPaaS vectors however, when working with .NET you need to predefine the number of cells, or elements that make up the array.

    In uniPaaS, defining a .NET array is very similar to defining any other .NET object. To define an array in uniPaaS you simply add square brackets [] to the .NET Object Type. The size of the array, however, is declared by the object constructor.

    9. Trapping Exceptions.

    Error handling is essential to all forms of programming and using .NET programming in a uniPaaS application is no exception to that (pun intended). uniPaaS provides two internal functions for dealing with .NET exceptions: DNExceptionOccurred() and DNException(). By mastering the use of these functions, you will be able to trap errors and handle them appropriately.

    10. Using .NET Code.

    In addition to working with standard .NET objects, methods and properties, there may be times when you want to execute custom .NET code. uniPaaS allows you to write .NET
    Code from within your application by using the Invoke .NET operation. uniPaaS passes the .NET code to the CLR provided as part of the .NET framework. The compiler returns the compiled code back to uniPaaS and the uniPaaS studio saves the task source code. During deployment, the compiled code is passed back to the client and executed.

    Monday, August 23, 2010

    Top 10 Tips to Get Approval to Upgrade to uniPaaS

    Getting the boss's approval to upgrade important software can be a challenge, particularly when budgets are tight. Here are a few tips on how to get approval to upgrade to uniPaaS from your outdated development platform:

  • PREPARE. Go in armed with all the necessary materials to make a good case for your upgrade. Download the “Ten Reasons” brochure and visit the series of blog entries on reasons to upgrade in the uniPaaS blog.

  • LEARN. Download or attend the Magic University course “Getting Started with uniPaaS Open Client” or "Getting Started with uniPaaS RIA" so that you can speak with authority on the capabilities of uniPaaS for client-server, Web and RIA applications.

  • RELATE. Show others in your organization including line-of-business managers and C-level executives what a uniPaaS RIA application can look like by showing them the RIA demo at http://riademo.magicsoftware.com. Show how specific problems or issues you've recently encountered, such as the need for more secure high-speed mobile computing, can be overcome by one of the improvements in uniPaaS.

  • SHARE. Point others in your organization towards the new online Magic community devnet.magicsoftware.com and learning resources for uniPaaS like the “Mastering uniPaaS” book.

  • SAVE. Point out the ROI benefits of migrating to uniPaaS immediately to avoid releasing a new version of your software based on old unsupported technology. Cost savings, productivity enhancements, application improvements, user interface benefits, and much more, are all available immediately, but only if you make the leap to uniPaaS. A delayed start to active development using uniPaaS equates to a very real loss of benefits to your company. Be prepared to provide an ROI or TCO analysis if requested.

  • TEAM. Review the benefits of uniPaaS with other members of your development team. Gain an understanding of how the improvements can enhance efforts across your development team.

  • CONSULT. Magic Professional Services can help to provide you with a migration readiness assessment. This formal consulting process will help you to plan for all aspects of your migration to uniPaaS and can provide a pathway to expert application of automated conversion processes.

  • LAUNCH. Ask for a commitment on a specific launch date for your team’s use of uniPaaS. Come in armed with a launch plan.

  • MEET. Set a specific meeting in which you can present your upgrade request to senior management. Make it clear to everyone that this is an important and needed decision.

  • DECIDE. Give a deadline to make a decision. Present the information and ask for an answer within a specified time frame. Reiterate that procrastination has real expenses and costs associated with it as well as lost business opportunities.

    For direct assistance, contact Magic Software Enterprises and we will be happy to help you make your case.
  • Thursday, August 19, 2010

    Software Modernization Podcast

    Software Modernization

    I recently had the opportunity to talk with Mark Schroeder of Software Modernization in a recorded podcast. Mark asked some excellent questions regarding software modernization, composite applications, SOA, cloud computing and integration. I invite you to visit the Software Modernization website and listen to the podcast.

    I really appreciate the time Mark took to talk with Magic Software and to provide us with this opportunity to share the benefits of the uniPaaS application platform with a new audience.

    Tuesday, August 10, 2010

    Breaking News: Enterprise IT Spending in 2010 Forecast to Improve 2.9%

    Following on our discussion of the explosion in the cloud computing market in yesterday’s post, I see today that Gartner Research, a leading IT analyst firm, has released new 2010 enterprise IT spending forecasts today.

    While the projected 2.9% increase in 2010 IT spending over 2009 numbers is not conclusive proof that the IT spending recession is over, it is another good sign. Let’s remember, IT spending in 2009 was down 5.8% from 2008, so while this updated midyear forecast shows a return to past growth trends we will still see IT sales volumes this year that are below 2008 levels.

    Gartner’s forecast included the prediction that the National and International Government Sector would increase spending on IT by 4.7% in 2010. It is not clear whether Gartner could have possibly factored in recent announcements of possible spending restraint in next year’s budget. What I find amusing about stories that report that more money will be spent on Web Services but less on cloud computing is that the common definition of cloud computing is so hopelessly broad that many would consider Web Services spending to be a part of overall cloud computing spending.

    Regardless of how the federal spending bills pan out, it seems clear that we will continue to see the kind of optimistic predictions about cloud computing that have it surpassing the Internet in importance.

    Whether or not one buys into such hopelessly subjective statements or not, it seems clear that cloud computing is positioned for strong near, mid and long term growth.
    If the 2.9% increase in IT spending in 2010 can be viewed as a turnaround year, then one would certainly expect to see significantly increased business spending on cloud computing in 2011. This is good news for users of Magic Software’s uniPaaS application platform as it should fuel growth in the user community surrounding uniPaaS as the company positions uniPaaS as a cloud application platform. Stay tuned

    Monday, August 9, 2010

    Cloud Computing Platforms Set To Explode in the Market

    Cloud Computing. As a frequent speaker, consultant and commentator on cloud computing, SaaS and RIA, I could not help but feel a little twinge of delight with the announcement in a recent IDC press release regarding the market for cloud applications and SaaS in particular “the Software as a Service (SaaS) market had worldwide revenues of $13.1 billion in 2009. IDC forecasts the market to reach $40.5 billion by 2014, representing a compound annual growth rate of 25.3%. By 2012, IDC expects that less than 15% of net-new software firms coming to market will ship a packaged product (on CD). By 2014, about 34% of all new business software purchases will be consumed via SaaS, and SaaS delivery will constitute about 14.5% of worldwide software spending across all primary markets.”

    Cloud Computing Platforms uniPaaS is brought to market by Magic Software Enterprises (NASDAQ:MGIC) with a vision of being a unitary platform-as-a-service solution. As a SaaS-enabled application platform, Magic’s goal is to deliver PaaS capabilities in a way that greatly reduces the complexity of creating cloud applications.

    RIA Client Support. The first step toward cloud computing is the transformation to a Rich Internet Application (RIA). uniPaaS fully supports development and deployment of RIA applications. As discussed here previously, there are many reasons to deploy Rich Internet Applications (RIA) with uniPaaS.

    Multitenancy Support. uniPaaS allows for leveraging any internet or client-server‐based application into a SaaS‐enabled application by providing multitenancy support at the platform level, relieving the developer from resorting to complex tenant‐aware application design and development.

    uniPaaS makes sure that for a single implementation of a SaaS‐type application, each tenant will be fully encapsulated and that every tenant specific characteristic is maintained and governed by uniPaaS Management and Monitoring facilities.

    The platform level support for multi‐tenancy enables the application vendor to design an application without taking special heed of multi‐tenant design and can remain focused on the application’s basic design. The uniPaaS platform will seamlessly turn the application into a multi‐tenant application by transparently directing the application to the tenants’ data space and by having each tenant served by an independent process. Nevertheless, the uniPaaS platform enables the application vendor to fine‐tune the tenant encapsulated environment in a way that utilizes a Data Space that is shared and common between multiple tenants.

    The environment‐driven and component‐based architecture of the uniPaaS platform enables easy customization of every part of the application, thereby achieving a singular application deployment that serves multiple tenants where each tenant gets to experience a tailored application.

    The uniPaaS platform as a whole can be deployed on a cloud, using the facilities of a uniPaaS hosting service provider, independently by the application vendor, or even by the end‐customer.

    The flexibility of the platform to be deployed as a whole in any location offers the application vendor the flexibility to choose the most appropriate deployment models and commercial models.

    Scalability. Application tenants are not bound to specific machines to support extreme usage surges. A redundant array of servers set for the disposal of the application are dynamically utilized for any tenant, according to the capacity required to serve the tenant at any given moment.

    Unitary Approach uniPaaS is envisoned as a unitary development and deployment platform. With a single, consistent IDE, there is no need for multiple languages, scripting tools and the like. uniPaaS provides one consistent solution for developing the client or user interface layer, the business logic or core application layer, and the multi-tenant architecture or database layer. For smaller teams and solo developers, a unitary approach has tremendous value.

    Metadata driven development. For generations, programmers have been dreaming of a metadata driven approach to application development that allowed them to create programs without rewriting basic functionality and building out the same software architectures repeatedly.I am not just talking about reusability of code, with metadata driven development one can actually avoid certain irrelevancies of programming altogether. It is not a new concept. All languages that take a step up from machine level instructions do this to some extent. With uniPaaS, you leverage the functional capabilities of an application platform rather than writing the building blocks using a text-based language. Low-level functionality is embedded in the application platform and managed through metadata by the developer. Functional abstraction greatly reduces programming effort because metadata platforms give you the ability to modernize underlying technology while preserving and enhancing core-business logic.

    With an increasing emphasis on cloud-based applications and the SaaS delivery model, uniPaaS is becoming an increasingly popular application platform for organizations seeking to optimize what Regev Yativ has aptly termed TTC (time-to-cloud). Perhaps the real question is: when will be your time-to-cloud?

    Glenn Johnson is a frequent speaker, consultant and commentator on cloud computing, SaaS, RIA, mobile applications and business integration. He is a senior vice president at Magic Software Enterprises Americas.

    Thursday, August 5, 2010

    Why develop RIA applications with uniPaaS?

    When developing Rich Internet Applications (RIA) the number of tools required to create a complete application should be a paramount concern. Do you have to learn completely new programming languages for the data layer, the transport layer, the business logic layer and the user interface layer? With most approaches on the market today, yes. But there is one solution that takes a unitary approach: the uniPaaS application platform is a single, consistent solution that allows you to design, develop, test, deploy and monitor Rich Internet Applications -- not just the user interface of those RIA applications, but the entire spectrum of the application including the data and business logic layers.

    The problem with most RIA development in the early adopter phase was that the programming was predominated by a herd of web developers with nothing but time on their hands, few of whom had any real grounding in the development of business applications. Transactions and database programming was something that "the other guy" did. So the early wave of RIA adoption largely produced a milieu of fanciful applications that served little or no real business purpose. They looked good and impressed their friends. Period.

    As RIA is being investigated by serious enterprise computer programmers there needs to be a maturing of the approach in order to achieve true scalability, operational reliability, transactional integrity and security needed for business processes.

    In this regard, the uniPaaS application platform has come to the fore in the serious considerations being made by Global 2000 businesses. In fact, numerous organizations ranging from the United Nations to UPS to SunLife have already made the move to uniPaaS for core business mission-critical applications. As a result, Magic Software Enterprises (NASDAQ:MGIC) has seen impressive growth in interest for its products and solutions in recent months.

    The evaluation process for uniPaaS can be conducted anonymously or with expert assistance, it's your choice. Many individuals simply like to try the free download of uniPaaS. But I actually recommend interacting with the very helpful pre-sales engineers at Magic Software and getting a personalized demonstration. "If you don't know where you're going, any road will take you there." The nice thing about a demo is that when you do download the software and the free self-paced course, you have a much better sense of what you are trying to accomplish.

    When evaluating one thing should become very clear. You have a single consistent and uniform IDE for all three layers of your Rich Internet Applications: the data layer, the business logic layer, and the user interface layer. This makes uniPaaS the only major unitary application platform in the RIA space.

    Is RIA Essential for Cloud Computing

    An argument can be made that without Rich Internet Applications (RIA), cloud computing would be impossible. But what is a Rich Internet Application?