Showing posts with label application development. Show all posts
Showing posts with label application development. Show all posts

Friday, February 28, 2014

Offline Apps: Don’t Forget the Security

Often when discussing the challenge of creating offline mobile apps we jump right to the issue of the synchronization business logic. Let today’s discussion serve as a reminder that offline mode presents important security considerations that must be planned for by the developer as well.

The Magic xpa Application Platform is among the elite class of application platforms that now provides capabilities for offline applications. 

Nevertheless, intentional effort is required to assure that proper and unique security measures are taken to protect offline apps and their data.  Offline security requires technical implementation measures, but beyond this it requires that developers apply business logic to the architecture and workflow of an application to make it secure. Even the most secure application platform can be misused to create insecure apps, so be careful to approach offline business app logic very carefully. 

Security may indeed be the most significant challenge for offline access to web services as opposed to using pure cloud services, because while the same network, server and application security concerns apply, offline access also requires storage on the device.  Therefore, malware, lost and stolen devices, and BYOD can all put your organization at risk of losing data held offline. Malware could access the local storage, lost or stolen devices could fall into the hands of data thieves, and a disgruntled user with their own device could seek to divulge the contents of their local storage after leaving the organization.

As with any mobile security challenge, this requires security to be built in to the business processes on several layers, from the device to the application and the user, as appropriate for the data being stored.  Securing devices is typically achieved through software measures such as user authentication and encryption while modern mobile device management (MDM) vendors provide tools external to the apps themselves like geofencing, remote wiping and device tracking to provide extra security and control over the device.Magic Software now offers a Mobile Device Management (MDM) platform to accompany its well known Magic xpa Application Platform and Magic xpi Integration Platform.

MDM and mobile application management (MAM) tools as well as modern application platforms help secure the applications, in particular providing the organization with the ability to view and manage who can access which applications, where, when and on which devices.  Finally, the data itself can be secured by requiring user authentication.  A combination of these layers should be used according to the data being stored.

For Magic xpa applications that require user authentication, user credentials should be securely stored on the client, to allow for operation without server authentication. To ensure validity, such credentials should be re-checked when connected.

When using integrated security with Magic xpa Application Platform, the user logon details and security credentials are automatically kept encrypted in the client cache. When running the application without connecting to the server, the last logon details (including rights) are used. Note that when running the application without connecting to the server, the logon dialog box will not appear. The logon credentials will be automatically synchronized on initial connection and on subsequent connected application startups.


Developers of offline apps have the tools they need, so don’t forget the security.

Wednesday, March 21, 2012

Metro UI Debate: Planned Obsolescence Ahead




With all the debate suddenly surrounding the Metro design spec introduced by Microsoft as part of Windows 8, one cannot help but wonder whose PR department is whipping up the controversy: Apple’s or Microsoft’s? On the one hand, the discussion can be viewed as an attack on Microsoft by the Apple Dumping Gang while on the other hand it could be a “no publicity is bad publicity” ploy by the MSFT Gang That Can Only Design Straight. In my view the attention ends up helping Microsoft and Android while hurting Apple.

The differences in the UI design and interactivity standards are rather ironic. Microsoft has generated literally billions of dollars in revenue by releasing successive generations of its operating systems and driving their adoption by pushing user expectations towards increasingly complex and interactive design standards. Early windows design looked very gray, gradually became more colorful, then beveled, then shaded, then ray traced, then transparent, then animated. Each time the clear intent was to create a graphical case for the latest coolest operating system version and a feeling that applications using the older design standards were passé. It was plainly and simply a form of planned obsolescence little different from design trends in the fashion, automotive and consumer packaged goods industries.

With mobile devices, Microsoft correctly identified a conundrum. If you bring today’s highly sophisticated desktop design standards over to mobile devices then there isn’t really much of a look and feel upgrade path left. Planned obsolescence becomes difficult when your design trends have reached their logical plateau. And this plateau was evident on the desktop as well. The solution: bring the desktop and mobile UI standards down together to a simpler level and yet one which is so clean and crisp as to feel modern and chic.

Metro is not nearly as bad as most of its critics make it out to be. Sure, it is simple. But there are plenty of Swedish designers who will tell you that design simplicity is a value to be upheld. If you think they are wrong, take a visit to your local IKEA store. I disagree that Metro is classic or retro in any way, it is quintessentially modern and sleek. In this sense, I do not disagree that Metro is a workable and pleasant design and interface standard. Whether or not it is a superior standard is a bit of a subjective argument in my view. I disagree with the Metro advocates who suggest that it is the only effective GUI. It is an effective GUI and it can beat chaos design in side-by-side comparison tests. So what? Is Microsoft really going to enforce Metro UI principles with police-state like efficiency? No. As a result, design creep and chaos will eventually eliminate the consistency that is currently Metro’s primary advantage in UI metric comparisons. Once you eliminate its newness and therefore its consistency, the Metro UI will compare similarly to any other well conceived GUI.

Call me a cynic on this one, but I see the graphical aspects of Metro as a well-designed platform for planned obsolescence. Time will tell. In the meantime, designing apps for any platform, any device, any time leads me to Magic.

Thursday, July 30, 2009

Wisdom from Michael Singer: Cross-Browser Compatibility for SaaS Solutions


The following contribution to the Magic of uniPaaS was written by Michael Singer, Application Development Manager for Magic Software Enterprises Americas

When creating a SaaS solution that runs under a browser, cross-browser compatibility is a must. In today’s world of multiple browsers and plug-ins, a good SaaS solution will have to be tested on every existing browser (including older versions of browsers). Furthermore, new features implemented in the solution would require additional cross browser testing as well. Vendors of web based, business applications have been calling for a standard in the “mad” world of browsers for a long time, but with the recent launches of Google Chrome and IE 8, it seems, the diversity and differences between the browsers is growing with every passing day.

To achieve cross-browser compatibility, a developer would have to try and limit to a minimum the amount client side validations, use of cookies and processing. All these actions should be done on the server side. This would create fewer cross browser issues on one hand, but might hamper performance on the other. Another good practice would be to create a thin layer on the server side that interfaces with the client side; this would streamline the different data that comes from the diverse browsers and make a single data structure going into the server side. In case browser errors still plague the application, custom error messages that explain the source of the problem, and recommend a type and version of a browser, could be created.

A little kid once said "There is no spoon." (The Matrix, 1999)


So let’s think out of the box. A good SaaS solution does not have to run under a browser. Rich internet applications (RIA) are "web applications that have most of the characteristics of desktop applications, typically delivered by way of standards based web browser plug-ins or independently via sandboxes or virtual machines. Examples of RIA frameworks include Curl, Adobe Flash/Adobe Flex/AIR, Java/JavaFX, uniPaaS and Microsoft Silverlight.” (Wikipedia)

In laymen’s terms, a RIA uses the internet as a communication layer, works on port 80 just like the browser (for compatibility with firewalls), has a very thin client (for compatibility with the IT department) and yet it does not run under a browser, but rather as a desktop application, providing all the capabilities and user experience you would expect from a desktop application.

There are a few solutions out there, but in most cases the architecture is similar. Most tools have a client that renders XML pages, and a server that generates them. Requests from the client are sent to the application server which returns XML documents back. These files are then rendered again to the screen using various technologies. Most platforms have a way of managing sessions or contexts, therefore allowing some kind of persistence in the user experience, and providing a solution for offline work. The clients tend to have a zero footprint on the workstation, therefore making it easy for users to log on virtually anywhere. Browsers, by the way, do the same thing. The difference is browsers know how to render HTML and not XML, and quite frankly, were not designed to be the foundation for a business application but rather should have been used for, well, browsing.

RIAs come in multiple different flavors. From the amazing graphics of Adobe Air, to the amazing productivity of Magic uniPaaS (which actually includes a SaaS platform as part of the product), depending on any project’s requirements, developers could probably find a good tool out there to create any type of SaaS application that would be user friendly, provide rich functionality, secure access and would not require any cross browser compatibility, simply, because it’s not running under a browser.

So as Morpheus said “I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.” (The Matrix, 1999)


Good Luck.
Michael Singer
July 18th 2009


Thanks Michael, great stuff.

Friday, June 12, 2009

The Essence of Application Development Productivity: It Just Is...

Art Pennington's book, the Predator, has lots of great business advice for life insurance leaders. When he gets to the section on technology, I love what he says:

I use the CEO's method of picking software development tools. I pick one that gets you to the end quickest. I don't care what everyone else uses, or whatever Microsoft is selling, or even what your IT guys want. There is only one criterion: the largest amount of software created in the shortest amount of time. Period.

That tool is [uniPaaS] by Magic Software Enterprises. It is, by far, the most productive software development tool available. I can almost guarantee that your IT department will not like this tool. But for minimizing risk and cost, it is the best choice on the market today.

I have solutions using this tool running in life insurance companies across the country, managing over $50 billion in assets.

-- Art Pennington, the Predator, Profit Research Institute, 2008.

It is never easy to put into words why uniPaaS leaves other approaches to application development so far behind. You simply have to spend a few days learning what it can really do to truly understand the "Power of Choice" as Magic's marketing team calls it.

Some of the keys to uniPaaS productivity principles derive from the fact that it is:

  • Repository Based
  • Task Oriented
  • Event Driven
  • Pre-Compiled
  • Reusability Optimized
  • Inheritance Principled
  • Technology Agnostic
  • Internally Debugged
  • Team Ready

When I talk to IT analysts about uniPaaS, they focus in on its metadata-driven approach to application development. I am certain that those of you who program with uniPaaS on a daily basis could find even better ways to describe the essence of uniPaaS productivity. But as I have been told so many times when I ask real developers why uniPaaS is the most productive application platform on the market today, "it just is."

The results, at least, are hard to argue. As Pennington states:

Just by eliminating inefficiency you can:

  • Double pre-tax earnings
  • Achieve a 33% increase in ROE
  • Achieve a 50% increase in ROA
Or in other words, it just is.