Friday, October 29, 2010

uniPaaS and the Next Killer App: Will It Be Yours?

The first Killer App may well have been VisiCalc running on the Apple II computer. The software program itself had so much utility that it convinced customers to buy the personal computer that ran it. Magic Software Enterprises is fortunate in that the uniPaaS Application platform has thousands of killer apps. Every time an end user buys one of our developers’ applications, they receive a uniPaaS application platform as well.

As a result, Magic Software takes great interest in the success of our developers. And we see the good and the bad. Good business models and bad business models. Good marketing and bad marketing. Good salesmanship and bad salesmanship.

In the ongoing recession, it's important to be able to stick out from the crowd of independent software vendors and deliver killer products in terms of functionality and technology.

In order to stand out, you need to be able to focus your development efforts on the features and functions that will cause buyers to want your products. ISVs should adopt application platforms that allow them to focus on developing rapid product functionality rather than dealing with the evolution of the technology, a platform that already automates common and repetitive tasks so that you can avoid coding them by hand. ISVs should choose an application platform that encapsulates essential application capabilities in a single stack platform rather than forcing them to innovate solutions for various architectures, standards, and so on.

Finding the time to switch application platforms is not trivial, however. A good time to make such a move is when one faces a major refactoring effort in their code. In other words, if you are going to have to rework most of your application code anyway because of an adjustment to some new environment or application model (such as Web enablement or SaaS), then you might find that is your best opportunity to start with a new application platform.

It is also important to be able to adopt new business models that can sell more of your products. A platform that allows an ISV to simply adopt new business models such as SaaS from within the platform, without the need to program all the infrastructure needed to enable such an approach is highly desirable.

I don’t know of another application platform other than uniPaaS that has enabled forward migration of business applications across so many different paradigm shifts. DOS to Windows to Web to RIA to SaaS and on and on.

The Magic of uniPaaS may well be its chameleon-like nature, its ability to adapt an application to new environments combined with its highly productive development paradigm. Hyper productivity and a proven 25-year commitment to forward migration make uniPaaS stick out from the crowd.

Monday, October 25, 2010

uniPaaS Is Ready For the World Series

When the Major League Baseball World Series begins at 7:30 p.m. ET time Wednesday at AT&T Park in San Francisco there will be plenty of drama: the San Francisco Giants vs. the Texas Rangers, Lincecum vs. Lee, Bruce Bochy vs. Ron Washington.

But you won’t have to worry about the logistics of the game. Parking attendants will direct traffic, Gate Keepers will take tickets, security personnel will return lost children to their parents, and Concession Chefs will serve up thousands of hot dogs. Deployment of that staff takes place through a Magic uniPaaS application called ABI Mastermind by Advanced Business Integrators.

So much of what we take for granted in life happens simply because a software application developed in Magic Software’s uniPaaS application platform just does its job. The morning after the game local newspapers like the San Francisco Chronicle, The Dallas Morning News, the San Jose Mercury News and the Fort-Worth Star Telegram will deliver the results of the game in the sports section. In fact, those newspapers alone will print more than 2,000,000 copies and an application by Burt Technologies developed in Magic Software’s uniPaaS application platform will manage the entire insertion process.

Not even malcontents will be spared from touching a Magic Software application. Any citations issued from illegal parking to ticket scalping will no doubt engage software applications developed in Magic Software’s uniPaaS running at the San Francisco Courts.

Court system software, newspaper insert management systems and workforce administration software may not seem exactly glamorous or exciting or dramatic. Certainly not as dramatic as the opening game of the World Series, but believe me, if the software necessary to pull off an event like the World Series didn’t work. You’d hear about it.

The reliability of Magic Software’s business application platform and integration technology has caused us to be relied upon over the years by leading organizations such as the United Nations, UPS, Sun Life, Sony, and CBS.

About Magic Software
Magic Software Enterprises Ltd. (NASDAQ: MGIC) is a global provider of on-premise and cloud-enabled application platform solutions – including full client, rich internet applications (RIA), mobile or Software-as-a-Service (SaaS) modes – and business and process integration solutions. Magic Software has 13 offices worldwide and a presence in over 50 countries with a global network of ISVs, system integrators, value-added distributors and resellers, as well as consulting and OEM partners. The company’s award-winning, code-free solutions give partners and customers the power to leverage existing IT resources, enhance business agility and focus on core business priorities. Magic Software’s technological approach, product roadmap and corporate strategy are recognized by leading industry analysts. Magic Software has partnerships with global IT leaders including SAP AG,, IBM and Oracle.

To learn more about uniPaaS Jet, visit the Magic Software blog.

Friday, October 22, 2010

RIA for IBM i For Power Systems including AS/400, iSeries, and System i

RIA for IBM i For Power Systems including AS/400, iSeries, and System i. A great deal of recent interest has been expressed on the topic of IBM i For Power Systems including AS/400, iSeries, and System i, as a platform for Rich Internet Applications (RIA). It may seem odd to associate a platform long associated with green screen interfaces with rich interactive business applications but only if one fails to appreciate the tradition of the IBM i. While it is true that this platform has never been known for or really even attempted to deliver a rich user interface experience, it has been known for other strengths that are very much needed in an application server: security, reliability, performance and scalability top the list.

Since the uniPaaS application platform server is native to the IBM i (as well as other platforms including AIX, Windows, Linux, Solaris and HPUX), one can immediately begin to see possibilities for leveraging the obvious server advantages of the IBM i and the considerable investment in existing business logic there for deployment to RIA clients in the cloud as well as Windows clients in a more traditional LAN or WAN network environment.

Because the uniPaaS application platform has native interoperability with the IBM i and supports Rich Clients via the Internet, we have an ideal browser-free secure solution for extending the reach of IBM i applications and enhancing their user experience.

IT managers overseeing an IBM i-based IT environment well understand the advantages of IBM's midrange platform: excellent middleware, superior scalability, top-level security, superior reliability and resilience, and straightforward operations and storage management. For some years, however, IBM and the IBM i user community seem to be on different tracks when it comes to application development and integration. Every few years, IBM introduces a new approach that never fully takes hold in the user community: Java and PHP are the most obvious examples when it comes to application modernization. This has created a layering of application logic capabilities and integration modes between legacy RPG and COBOL and newer approaches to development and integration that some might even call a fracturing of business logic.

As discussed here, IBM i is being used generically to cover OS 400 and i5 OS, in other words, this discussion is not OS version specific. DB2/400 and DB2 for i5OS are also used interchangeably here, while DB2 UDB should not be confused with these.

The IBM i operating system (I know Frank, I know, its not an operating system) or platform provides a rich variety of platform capabilities that can be used for various aspects of an application development project.

Remote Procedure Calls – Calling Existing Program Logic. uniPaaS allows you to call System i Programs for the purpose of passing parameters back and forth or simply executing a batch program. Typically IBM i programs are written in RPG, although COBOL or other IBM i legacy languages may be involved. Utilizing existing application logic has a number of advantages: it preserves investment in prior software, ensures consistency in business processes, and allows changes in logic to be made in familiar languages. uniPaaS has built-in capabilities for handling these calls. It would be extremely disadvantageous to try to write Remote Procedure Calls to RPG from scratch in a language like C++. Utilizing a higher-level programming tool like uniPaaS makes more sense. In order to work with remote procedure calls, a facility for readily building attribute strings is useful.

Working with Attribute Strings. When modernizing an application in the IBM i environment, it will be useful and necessary at times to work with attribute strings. The application architect or developer can use uniPaaS to work with Attribute Strings and return the argument's attribute string, in order to call an iSeries program.

System Level Commands. With so many capabilities written into the IBM i OS itself, it makes sense to use the system command line from within an application. For example, the command line's WRKSYSVAL command can be accessed. According to IBM, "The Work with System Value (WRKSYSVAL) command allows you to work with a specified system value. The system values are provided as part of the system. They are used by the system to control certain operations in the operating system and to communicate the status of certain conditions. Changes to some system values take effect immediately; however, some do not take effect until new jobs are started, and others do not take effect until the next initial program load (IPL)." One can access, for example, current security system values using (*SEC). The possibilities with system commands are numerous and provide extensive power for developers writing applications that access them. Obviously, Control Language (CL) command integration will be limited to capabilities at the CL level. Capability to retrieve CPF and CPD error messages and job log messages will also be regarded as an important requirement in some application development scenarios.

Accessing the User Space. One of the powerful integration patterns somewhat unique to IBM i is the user space. You can think of the user spaces as objects of up to 16 MB that can be used to save user-defined information. A user space object is permanent and can be stored in either the system domain or user domain. Working with the user space in an application, the application architect or developer can create user spaces for lists of data; access and store pointers; deal with large amounts of data; add, update and delete information using control language (CL) commands; exchange data between jobs, applications and systems.

Working with the user space is useful on the IBM i because it provides the application architect with a way to deal with a commonly used IBM i methodology. Rather than requiring extensive changes to existing jobs or applications, a program can interface with the user space already employed in an existing IBM i scenario. Not all IBM i procedures are based on the user space, however, so this will be the primary consideration as to when to use the user space.

Accessing the Data Queue. Data Queues are one of the powerful and unique capabilities of the IBM i that help an otherwise batch-oriented environment to deal with both synchronous and asynchronous activities. The data queue works with both data and metadata or one could even say messaging. Their purpose is to facilitate both synchronous and especially asynchronous communications, for example, a payroll system may have a single job to run payroll that is triggered by multiple time card entries that are stored in the data queue. Among the attributes of the data queue is the "Async read" which allows data in the data queue to be protected while it is being read. It is a type of transactioning mechanism that has specific parameters related to wait time. The data is essentially removed while it is being read but only for the specified wait time.

Use of the data queue is most powerful when existing processes are already using data queue as a method. This allows you to take advantage of previously considered business rules for access of data in the data queue and avoids "recreating the wheel."

Accessing Spool Files. The print spool is a frequently used IBM i operating system feature. Spool files can be considered proprietary to the IBM i environment, in particular because of their traditional connection to IBM printer formats. However, increasingly, IBM i shops have engaged in spool file conversion to get output data into popular formats such as PDF. The spool files can take on several formats: SCS, AFPDS, IPDS, AFPDSLINE, and PCL. Printing to the spool file may be a common application requirement.

Accessing IFS Objects. The integrated file system (IFS) of the IBM i supports stream input/output and storage management within an integrated structure across the system. The IFS supports binary formats which can be useful for GUI client/server, RIA, integrated systems, and rich media types.

Accessing Java on IBM i. Some IBM i based IT departments have introduced Java into their environments with varying degrees of success. Since many teams seem to be searching for ways to minimize further investment in Java, the ability of a uniPaaS RIA application to call pre-existing Java capabilities may be particularly relevant in these scenarios. To best composite applications from various Java technologies, the developer will want to have abstracted capabilities for dealing with Java objects, classes, EJBs and even in some instances the Java Message Service (JMS). Keep in mind that while some of the IBM WebSphere solutions for dealing with the complexities of java integration are available for IBM i environments, not all elements of the WebSphere stack are suitable to or will even run at all on IBM i. IBM WebSpehre Application Server (WAS) Express of course is available and will often be a target for composite applications.

Database Access on IBM i. Direct data and database access by the uniPaaS application is accomplished through a high-speed native database gateway. In addition to the integrated file system access already mentioned, the DB2 400 or DB2 UDB for i5 OS databases, SQL tables, SQL interfaces to physical files, open query file functionality are available. With the open query file, one will want to be able to sort and select records. With SQL access to physical files (as opposed to native IFS access previously mentioned), the option for use of direct SQL statements and access to views, triggers, functions and stored procedures presents itself.

Web and Web Services. From the uniPaaS Composite Resource Repository, one can also employ Web Services. uniPaaS supports the native Apache requester on the IBM i as well as the Apache server which may in some cases be on a Linux partition. While HTTP get and post may be suitable for basic Web processes, full service-oriented architecture on the IBM i will be supported by use of SOAP Web services and WS-Security. The support of the integration system for Web Services becomes especially powerful in combination with the other development methods discussed here, essentially service-enabling the IBM i platform in a Service-Oriented Architecture (SOA) approach.

For additional information, please see the Magic Software website.

Friday, October 8, 2010

If IT isn't shared, it isn't cloud...

Recently I was asked: Is multitenancy a fundamental of cloud computing or SaaS or both? I think that depends on how loosely defined multinenancy is in your dictionary.

In computing, the term multitenancy describes a shared approach to resources. I think that in a very loose definition both cloud computing, and of course SaaS, involve resource sharing. But not all types of multitenancy are the same with respect to their approach to resource sharing.

Gartner offers up six models of multitenancy: shared-nothing; shared-hardware; shared-processing; shared-database; shared-everything and custom multitenancy.

The shared-nothing approach is the least multitenant in nature and users may have nothing more in common than a shared URL, billing system, support line or duplicated executable files. This stretches the definition of multitenancy so far as to be essentially out of bounds, in my view, and is most likely adhered to only by those seeking to follow on the bandwagon effect of SaaS and the cloud. Think of IBM WebSphere or Oracle Application Server running on Amazon EC2.

The shared-hardware approach to multi-tenancy isn’t very interesting to software types like me. In this model, the tenants share a common pool of hardware usually through virtualization. But each tenant has its own dedicated software stack (application platform, middleware, applications, databases, etc.) It should be no surprise that this is the approach taken with Microsoft Azure .NET because they want to maximize software sales and licenses and the easiest way to do that is to require multiple instances.

What Gartner calls shared-database multitenancy is about a single database for all tenants. Tenants do not share each other’s data (and can not see it), but it is stored inside the same database. However, a separate instance inside an application container is used to process the application.

Only when Gartner starts to speak about shared-processing multitenancy will some cloud advocates start to nod their heads. In this model, a multi-threaded application platform brokers each tenant’s use of the processor but each tenant will likely have a unique database instance. Gartner says: ". Most process execution resources are shared, allowing fine-grained elasticity. The application platform has multitenancy features responsible for tenant isolation and for targeting all data exchanges to the correct DBMS instances. " Gartner mentions the uniPaaS application platform as the example of this model.

In the shared-everything model of multitenancy both processor and database multitenancy is present. As Gartner suggests, this provides maximum theoretical elasticity. However, several factors such as the efficiency and design of the database gateway and the operational integrity and bi-directional scalability of the processing engine can inhibit optimal processing performance in shared-everything multitenancy approaches such as Other downsides include public exposure of non-specific tenant metadata (statisitics about overall use of the application or platform can become known to competitors) as well as issues related to the lock-in of application code on a completely proprietary cloud platform or SaaS application.

Finally, Gartner would identify custom multitenancy as a sort of manually programmed multitenant architecture. Clearly the programming overhead is massive in such approaches and one worries about the capability of an organization to sufficiently test such an approach in a manner that can assure operational integrity and reliability.

Choosing the right level of multitenancy is an important decision. But it is not the only decision in choosing a cloud-enabled application platform. One must also consider the client environment and the challenges of developing both the server side and the client side of an application. So to answer the question we started with, yes, both cloud computing and SaaS require some model of multitenancy. If it isn't shared, it isn't cloud. Nobody owns the whole damn sky.