Friday, December 31, 2010

Sacramento Software Development Community Waves at the uniPaaS Jet RAWmobile

The uniPaaS Jet RAWCross America Tour Rolls through Sacramento
The uniPaaS Jet RAW Mobile is appropriately enough a Dodge Journey. As makes their RAWcross America journey from Orange County, California to New York City and back they will be stopping in some pretty interesting places.

Last night they stopped in Sacramento, home of Advanced Business Integrators, a uniPaaS ISV that has accomplished a great deal in the last ten years. ABI makes a workforce management software solution that is ideal for venue management of arenas, stadiums, theaters, performing art centers and other types of event-oriented facilities with highly variable staffing requirements. In fact, ABI Mastermind is the world’s premier workforce management solution. More than half of the NBA, NFL, NHL and MLB teams play in facilities whose workforces are managed by ABI Mastermind on the uniPaaS application platform.

In Sacramento, the uniPaaS Jet RAWMobile drove past the ARCO Arena, home of the Sacramento Kings where ABI Mastermind makes sure all the personnel get what they need and are where they need to be to provide for the security, safety, comfort and entertainment of their audience.

Although Sacramento is not known as a programming hub, you might be surprised by all the programming jobs at software companies in the Greater Sacramento area. And according to the Sacramento Business Journal, Sacramento’s high tech workers earn twice the average salary for the area.

Better yet, software development is a great business for an entrepreneur because you can basically build your product out of thin air (or electrons). Becoming a uniPaaS Independent Software Vendor (ISV) may be the best decision you've ever made. Using uniPaaS application platform technology enables ISVs to develop advanced business applications based upon real Rich Internet Application (RIA) innovation. You will even be in position to take advantage of the coming cloud computing and SaaS revolution.

So how would you go about building your own startup software business in the Sacramento area (or wherever you live?) First of all, you can start by downloading the free uniPaaS Jet development software. This will allow one developer to create as many single user applications as you want and distribute them to an unlimited number of users. I call it the 1:1:infinity formula for business success. One programmer. One User. Infinite repeatability.

Second, you will need to learn to use uniPaaS Jet, so then you should download the free self-paced training materials.

Third, you need to develop ideas. Start by looking at the free uniPaaS Jet RIA demo online to figure out what’s possible. Download the source code for fun. Finally, build an application that you will be proud of. It may simply be a resume or portfolio piece or it may be a commercial application that you plan to sell to that infinite universe of potential users.

The next stop on the RAWcross America tour will be Portland Oregon home of a growing mobile software development community. And then the tour is on to Seattle, Washington. Not exactly Redmond, but Seattle is a big software town nonetheless. See you on the road!

Thursday, December 30, 2010

RAWcross America Rolls Through the Bay Area Promoting Emerging Artists and Programmers

The RAWcross America tour has begun its coast-to-coast trip sponsored by Magic Software Enterprises. As expands their network of emerging artists nationwide they will be extending them an invitation to enter the uniPaaS Jet Viral Video Competition.

On top of that they will be taking the uniPaaS Jet RAWmobile coast-to-coast emblazoned with the uniPaaS Jet logo and it may even be picking up some more stickers along the way (stay tuned). “ is all about featuring the work of a mostly younger generation of emerging artists,” says Heidi Luerra, founder of “We think uniPaaS Jet is an ideal sponsor because of its similar goals of bringing the vision of an accelerated development process to a new generation of software developers. Our artists will be invited to showcase their amazing talents in the uniPaaS Jet viral video competition, thereby focusing the attention of a powerful social media system on both emerging artists and uniPaaS Jet.”

Since the RAW Artists organization promotes a wide variety of art forms, we could be seeing uniPaaS Jet viral videos submitted by painters, sculptors, hairdressers, models, makeup artists, fashion designers, musicians, performance artists, jewelery designers and yes, filmmakers.

I love the “Powered by uniPaaS Jet” banner across the top of the news page on This is the concept car that we approved. But as Matthew Klahorst, Marketing Director for explained, when they went to actually rent the SUV, it turned out to be red. The rental car company laughed at them when they tried to reserve an SUV by color. (Note to Rental Car Company: If you need help modifying your software to allow for a color request field, I know a few uniPaaS programmers who might be able to enhance and extend your applications).

Yesterday those amazing RAW Artists shot a uniPaaS Jet “commercial” in front of San Francisco’s Golden Gate Bridge and last night they had a meet and greet in Berkeley. I wonder if they stopped in front of the Oakland-Alameda County Coliseum or the San Francisco Courts where uniPaaS applications have been running things for years.
The tour lands in Portland to promote emerging artists on January 1st. They got some nice local publicity about that event. Portland isn’t exactly known as a programming center but there have been some signs of an emerging mobile development community in Portland that it would be great to connect uniPaaS Jet to. So just as these startup mobile software development companies in Portland begin to emerge, the RAWcross America tour is coming through town. For a more corporate look and feel, the RAWcross America tour could pose in front of the Rose Quarter, Portland’s famed events center where a uniPaaS application called ABI Mastermind is doing all the workforce management needed.

It may seem like a right-brain, left-brain conflict for a company with an emerging cloud application platform to be sponsoring a tour by a band of wandering artists. But sometimes you just have to roll with it. Travel on RAWcross America. We'll see you at the next stop!

Tuesday, November 23, 2010

Making the World A Safer Place with uniPaaS

I always enjoy seeing innovative uniPaaS software applications, especially those that are used by first responders to make our world a safer place. The mi-Stock application by Magic Software business partner M.A.G. Integration is a great example. mi-Stock was designed to meet the needs of security and fire departments in today’s fast moving world.

mi-Stock is an asset management system for fire departments. Firefighters rely on mi-Stock to confirm with complete certainty that they have all the assets they need, where they need them in order to serve and defend those whom they are called to protect. In the process, it is delivering time and cost savings as well. In between calls, mi-Stock helps those who manage assets knowing what has actually been used for past events, how much should be reordered, how much it is worth and where everything belongs once received. Taking inventory is faster and easier. Accounting discrepancies are eliminated by using the mi-Stock application. From a management perspective, accurate and reliable data is accessible in real time to assist in decision-making.

In addition to the long list of features that are include in mi-Stock, there are additional modules that can be added such as the new mi-Stock Mobile application for real-time field asset management and the Maintenance Management Module. M.A.G. Integration is also very agreeable when customization is requested for unique processes and requirements.

This is only one example of the excellent solutions available from M.A.G. Integration, a Magic Software Partner with years of experience delivering solutions for customers of all sizes.

To try uniPaaS for yourself, sign up for the uniPaaS Jet download program.

Friday, November 12, 2010

Magic Software Enterprises: Riding the Magic Wave Into the Cloud

If you have been paying attention to the results of Magic Software Enterprises (NASDAQ:MGIC) on the Nasdaq Exchange this week, this month or this year, then you’ve noticed the exuberance shown by the markets towards the makers of uniPaaS, an emerging cloud-enabled application platform. Remarkably, uniPaaS is still relatively unknown in the marketplace. It is as if we have been engaging in underground programming and underground marketing. For this reason Magic Software’s Regev Yativ, CEO of the company in the Americas, has been pushing a new idea: uniPaaS Jet. You’ve probably seen the download “coming soon” banner on the Magic Software website or brief mentions of uniPaaS Jet on our blogs. You may even be involved in our beta test program for uniPaaS Jet.

One senses that with uniPaaS Jet we are going to take our long history of underground programming and turn it into a viral, programmer driven marketing engine. Underground programming conjures up quite a different image from a name like uniPaaS Jet that invokes images of high flying aerial acrobatics. uniPaaS Jet creates single user applications with all the powerful capabilities of our full-featured uniPaaS application platform. But stay with me for a moment. As more and more developers download uniPaaS Jet and begin creating free distribution applications, the name will penetrate further and further into the marketplace.

There are lots of good single user applications that developers may want to create. In fact, the most commercially successful application software programs ever are basically single user applications: Word, Excel, PowerPoint, etc. But the focus of uniPaaS is more along the lines of a business application.

So who are these underground programmers with uniPaaS Jet going to be? Members of the existing Magic development community? Yes, in some cases. But many who will be creating all these single user applications are younger developers seeking to get noticed. These young underground programmers will take Magic Software up into the atmosphere like a Jet.

So what will these applications actually do? Everything from managing your passwords to organizing your investments. One can easily imagine a program to help artists catalog their works, a sort of personal digital portfolio that tracks the business side of being an artist. An application like this would need to track when a work was created, to whom it was sold, derivative works, numbered prints, etc. On the reverse side a collector may want a digital collection catalog as well. When was it purchased for how much, who is the artist, when was it liquidated from the collection, for how much, to whom, auctions, dates, prices, etc.

When creativity is unleashed, good works ensue. This is only one of the tracks that Magic Software Enterprises is following to ride the Magic wave into the clouds. Stay tuned. There will be plenty to see in the coming days.

Tuesday, November 9, 2010

The Denali "uniPaaS" Doesn't Look Treacherous At All

The Denali Pass leading up to Mt. McKinley in Alaska is known by mountain climbers for its treacherous slopes. But when Microsoft announced Denali there was no fear in the uniPaaS development community.

To no one’s surprise, the news came out today at the PASS Summit in Seattle that Microsoft has released a preview of the next major release of SQL code named Denali. Once released, this new version of SQL Server will replace SQL Server 2008 as Microsoft’s premier relational database server product. This is an important announcement if for no other reason than the fact that Microsoft SQL is the most common SQL database and ranks third after Oracle and IBM in sales revenue. One senses that the actual release date is rather distant as Microsoft has been mum on that question.

The new features that Microsoft is touting for Denali include the “Apollo” column store technology to speed database queries; the “Crescent” database visualization and presentation solution; the “Juneau” single development portal for data and application developers; and the SQL Server “AlwaysOn” feature which is an analysis, troubleshooting and configuration solution designed to reduced database downtime, increase performance and solve other problems.

All of this seems likely to remain transparent to the uniPaaS developer and application users will undoubtedly notice performance and reliability improvements but not much else. It should be noted that uniPaaS has high speed native gateways for MS-SQL, Oracle, DB2, etc.

The uniPaaS application platform allows developers to quickly develop SQL applications for business data processing. uniPaaS allows for both deferred and physical transactions to the SQL database. With batch tasks physical transactions are the default whereas with online transactions deferred transactions are the norm. But the developer has the power of choice on the preferred method.

With deferred transactions in an online program, the developer can choose to defer the transaction for the entire task or record by record. There are also options for nesting of deferred transaction and for a deferred transaction within an active transaction.

When a uniPaaS developer selects to begin deferred transactions “before task prefix” they are deferring the entire task. If you defer the transaction “on record lock”, then the deferral is on a record-by-record basis. The transaction begins when you lock the record and you have options for when that happens. Record locking strategies can be set as desired. You can choose before record prefix, before record suffix or before update. Each of these lock the record for successively shorter durations but also have increasing levels of record exposure where an earlier lock may have prevented the situation that record locks are designed for in the first place.

On the other hand, there are numerous situations where transactions and locking aren’t needed at all, the most obvious example being when all you need to do is view the data. Also, remember that transactions and locking on a record-by-record basis is going to require more processing time than at the task level. And with batch transactions, you have an intermediate option to define a group, such as every 100 records or every 1000 records.

Of course the options for dealing with transactions in uniPaaS for SQL databases just barely scratches the surface of all the nice data-centric application development capabilities that uniPaaS provides. The data view repository, data models, SQL functions and data discovery features of uniPaaS could be a discussion unto themselves.

As uniPaaS is increasingly viewed as a mainstream .NET development platform with cross-platform capabilities, I suspect many of the Denali users will be drawn to uniPaaS for its rapid development capabilities and reputation for rock-solid reliability.

Friday, November 5, 2010

Programming Through a ViewFinder

Last night I attended a Chris Trapper concert in the backyard of Brian Pitoniak, one of the best uniPaaS pitchmen I know. Trapper’s lyrics are poetic but accessible, his acoustic guitar sounds like three people are playing it and his singing lives up to the old cliché: "his voice is his instrument" as he moves between expressive highs and lows.

During the first encore he performed Ocean View. Leading into the song he explained that it was inspired by an experience at a Fourth of July fireworks show. He was on a friend’s deck overlooking the water and closer to the fireworks than he had ever been before. The light reflecting on the water was an experience of a lifetime. But he noticed another man with a video camera filming the entire fireworks show from start to finish. This other man watched the whole show through a viewfinder so that he could “relive an experience he never really had in the first place.”

For some reason this reminded me for a fleeting moment of my article on The Futility of Coding where I discussed Don Norman’s book The Design of Everyday Things which suggests that the principles of good design that you need are 1) a logically consistent model, 2) ability to see what you are doing, and 3) clear feedback between actions and reactions in a manner that provides continuous feedback. The man videotaping the fireworks failed on all three counts in designing his own experience. Watching fireworks through a video camera lacks logical consistency, it impedes your ability to see what you are doing and it breaks the feedback loop between you and the experience.

The situation is much worse for traditional computer programmers. You type text into an editor all day long in the hope that someday you will get to experience the software you are creating. There is no immediate connection between the creative process and the created experience when you use standard methods of line-by-line programming. I guess this is true of a lot of human endeavors, you can’t build a house and live in the house at the same time. I guess that’s the really cool thing about live music: the moment of creation and the moment of experience are completely synchronous.

So uniPaaS is a lot closer to a live music performance when it comes to computer programming. In uniPaaS Studio you can run your program at anytime and see it working. There is no intermediate compile, link and load nonsense. Developing in uniPaaS is a pseudo-live experience, not quite synchronous but certainly not without a very strong and instantly accessible feedback loop. Some call this iterative software development and an application platform like uniPaaS is ideal for agile development methods.

So if you want to try it out just sign up for the uniPaaS Jet download. If you want to buy it, call Brian Pitoniak. I’m sure he can set you up. (949) 250-1718 ext. 232.

Tuesday, November 2, 2010

Did you vote for your favorite Governor?

Vote uniPaaS: A Development Environment with Extensive Resource Governance

Today was Election Day for the next Governor of California. As I write this, I do not know yet who won the election in the contest between former Governor Jerry Brown and eBay pioneer Meg Whitman. Whether discussing public policy or software development, governance is important.

In software development, good governance helps you meet challenges in managing resources and artifacts. A developer needs to keep track of all sorts of resources including variables, forms, expressions, models, formats, messages, programs, Web services, etc.

In most IDE’s, developers have to decide on artifact identifiers which must be unique, and once defined they cannot be modified. This forces extremely strict guidelines essentially putting the developer in a straightjacket. It also involves a lot of creativity and forces developers into their own fantasy world. This aspect is difficult to automate while maintaining program legibility. It is also common that naming conventions change as projects mature and grow, and the ability to implement new artifact naming for existing applications is a very rare luxury.

With the uniPaaS application platform, a resource and artifact governance framework is built-in, with highly automated artifact management. Developers do not need to provide resource identifiers but only resource names (descriptors). Resource names can be modified anytime, and any modification is propagated wherever the resource is referenced. This enables much easier resource management and easy maintenance of very large projects.

Furthermore, all the resources of a uniPaaS project are maintained in an integrated set of repositories, facilitating the automation of their creation and management. In addition, a number of third party tools such as Magic Optimizer are available to optimize and document these.

Another important aspect of the uniPaaS governance framework is the program transparency and legibility. Artifact descriptors can be as meaningful as necessary and can include any type of character. Coupled with standardized program structures, they make programs much more legible and maintainable even by developers who see the program for the first time.

Leveraging Magic Software’s rich experience with metadata driven development, the uniPaaS application platform provides abstraction capabilities that facilitate the design and development of complex applications and encourage resource reuse.

The development paradigm is declarative, event driven and service oriented. It is also a unitary one, meaning that the development process of RIA or Fat-Client applications is the same – there is no need to develop separately for a Fit Client, since the platform abstracts the Client and Server partitioning. Fitness is an important consideration in governance.

By the time you read this, you will probably have heard the news as to who was elected to succeed the very fit “Gubernator” Arnold Schwarzenegger as Governor of California. One thing is for sure at this moment, you cannot go wrong when choosing uniPaaS for application development and deployment.

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.

Wednesday, September 8, 2010

uniPaaS Discovery Download and Installation

With the uniPaaS Discovery version, you will be able to learn uniPaaS and get an idea of its capabilities for Rich Internet Applications (RIA), Web applications, and client server applications. Installation options abound, and so you may want to watch this YouTube Video by Ofer Spiegel that provides easy step-by-step instructions on how to get started with uniPaaS programming without having to create line-by-line code.

Ofer Spiegel begins: "So you have made the wise choice of discovering the most productive application platform that is uniPaaS. This short video will guide you through the installation process of uniPaaS Discovery."

The uniPaaS Discovery download is available free from Magic Software.

This video is presented by Ofer Spiegel, a product marketing manager at Magic Software Enterprises Ltd.

Friday, September 3, 2010

The Futility of Coding

Insanity: doing the same thing over and over again and expecting different results. -- Albert Einstein

Coding Failures. Computer programming projects are notorious for their failure rates and many of these issues can be tied to the massive effort required to write a working program. And yet businesses routinely try to solve business problems by writing millions of lines of computer code. The number of persons in an IT department who are truly capable of programming are few and far between.

Java weaknesses. There are all kinds of weaknesses in coding. For example, it is well known that a Java program can be syntactically correct but still not compile because of errors related to the semantics of the language.

Visual Studio.NET weaknesses. And Microsoft itself has admitted that “Most languages do not support binary compatibility at all, and many do little to facilitate source compatibility. In fact, some languages contain flaws that make it impossible, in general, to evolve a class over time without breaking at least some client code.”

Very few people can code. In his widely read article “Why Johnny Can’t Program” Dan Bricklin suggests that: “Despite the enormous changes which have taken place since electronic computing was invented in the 1950s, some things remain stubbornly the same. In particular, most people can't learn to program: between 30% and 60% of every university computer science department's intake fail the first programming course. Experienced teachers are weary but never oblivious of this fact; brighteyed beginners who believe that the old ones must have been doing it wrong learn the truth from bitter experience; and so it has been for almost two generations, ever since the subject began in the 1960s.”

But many people can program. Bricklin points to Don Norman’s book The Design of Everyday Things to suggest that principles of good design suggest that you need 1) a logically consistent model, 2) ability to see what you are doing, and 3) clear feedback between actions and reactions in a manner that provides continuous feedback.

The futility of coding. Traditional computer programming fails on at least two accounts. Depending on the language, one can argue whether it follows a logically consistent model. But there is clearly no visible relationship between 3GL code and the interaction of the computer program itself. In languages that require compilation, there is also no continuous feedback. The need of most 3GL and 4GL programs to run error-checking and debugging programs before compiling is clear evidence of just how broken the feedback loop really is.

An approach to developing not coding. Contrast that with an application platform like uniPaaS that allows for the use of menus, drop-downs, dialog boxes and form drawing tools. It is much easier to see what you are doing in this kind of approach. It is not only easier to see because it is human readable, it is also easier to see because there are fewer instructions needed. A uniPaaS application leverages the underlying capabilities of the platform itself which encapsulates capabilities that would otherwise have to be written and displayed as thousands of lines of code.

Furthermore, uniPaaS provides immediate execution of the program while still in the studio environment. uniPaaS’ table-driven development paradigm results in computer programming that offers instantaneous results. What follows the invocation of a table based program is an iterative process of refinement. And the uniPaaS repository-based model is very strong conceptually. The data, logic and user interface layers of an application are neatly organized and easily manipulated. Complex processes that are difficult to visualize because of the number of complex interrelated steps, such as the design of a Web Service, are managed for the uniPaaS programmer through the use of wizards that provide a clear dialog approach that eliminates the need to read and write detailed coded instructions.

Exploring uniPaaS. To see a good example of a the interaction possible with a uniPaaS RIA application see the uniPaaS RIA demo. To download uniPaaS and a self-paced training course, visit the uniPaaS download site. As always, developer resources for uniPaaS are available on the website.

And So You Code...

Thursday, September 2, 2010

And So You Code -- Great Video!

Great job by Ofer Spiegel in creating this hilarious spoof on the French You Tube video sensation "And So You Dance." Thanks Ofer!

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 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 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?

    Saturday, July 31, 2010

    One-To-Many Programming: From the Cloud to the Ground

    A Programmer’s View of One-to-Many

    Let’s return to what David Remsen says about one-to-many data relationships: “When deciding upon how to best split data into tables we often ask "What are the logical units of the data?" In other words, what is best represented by a single row of data. It is often convenient to think of physical representations when applicable. For example, what types of information can we associate with a patient that only appears once. A person usually has one name and social security number so these can be safely placed in a table. We might add date of birth. [On the other hand] a person can have many tests. They might only have one but they might also have fifty. Thus one person might have many tests and this is represented by a One-To-Many relationship…”

    As we stated previously, a one-to-many data relationship exists when one record from one data source is related to several records from another data source; a single country in a Country data source will be linked to many entries within a City data source. This much is clear and well known to developers and users alike.

    With the uniPaaS application platform, development of an application that utilizes data that is in a one-to-many relationship is implemented by the interrelationship of two tasks or programs. In uniPaaS, a program is not an all encompassing application, but rather a very small but discrete task. Most developers in uniPaaS lean towards fine-grained programs because of their reusability.

    The logic is very straightforward. The first task or parent task deals with the main record and the second task (sometimes call a child or subtask) deals with the "many" or multiple records that are related to the main record. This relationship is often displayed to the end-user using two different display formats, the parent program displaying the single record in screen mode and the child program displaying the multiple records in a table. This is not always the case, since you may decide that the parent program will also be a table.

    uniPaaS uses a Subform control to display the child task's form within the parent task's form and refreshes the subtask each time the common variable is changed in the parent task.

    A one-to-many data relationship is established between a primary data source and a secondary data source in such a way that each record in the primary data source has several related records in the secondary data source.

    In a one-to-many relationship, there is a primary data source (the one) and a secondary data source (the many). The primary data source must contain a unique identifier or index to which the secondary data source can associate. The secondary data source will contain both the unique identifier of the primary data source (the reference index) and its own unique identifier (the secondary index).
    This can best be illustrated through an example such as order numbers and order lines in an order entry program.

    Primary Data Source

    In the following example, the Orders data source is the primary data source.

    An order record usually contains basic details regarding the order, for example:
  • Order Number
  • Order Date
  • Customer Code
  • Total Amount
  • Method of Payment

    The Order Number will be the Unique index of the data source, since each record has a unique order number.

    Secondary Data Source

    The Order Lines data source is the secondary data source. It contains several data items:

  • Order Number
  • Order Line
  • Product
  • Quantity
  • Price

    The Order Number and the Order Line will be the Unique index of the data source. The same order number can repeat several times with different order line numbers. The linkage between the Orders data source and the Order Lines data source is the Order Number.

    For each record in the Orders data source there are several records in the Order Lines data source. This is the exact definition of a one-to-many data relationship.

    Without the use of one-to-many data sources, all information would need to be contained in one record. This will cause problems, such as the end-user having to repeatedly type the same information, and large records because of the repeated data.
    The result would be a large data source, which takes up more disk space and slows down the program's performance.

    The solution to this problem is to define two data sources according to the following rules:

  • All of the repeating data columns should be defined in the primary data source.
  • All of the unique data columns should be defined in the secondary data source.
  • Both data sources should be connected using a common column.
  • The common column is the only column that will be repeated in the secondary data source.

    Separating data into two data sources like we did in the Orders and Order Lines example has several advantages.

    The separation saves the end-user from having to type the same data several times and it also reduces the size of the records.

    Step-by-step procedures on the creation of a program that utilizes one-to-many relationships are available in Module 18 of the Getting Started with uniPaaS course. For a description of what we mean by a one-to-many application platform, see our previous entry.
  • One-To-Many Application Platform: Is Cloud Computing In Need of New Infrastructure?

    An Architectural View of One-to-Many

    uniPaaS is emerging as the industry’s first one-to-many application platform. We are all familiar with the one-to-many data relationship as the workhorse of relational databases. As David Remsen states: “When deciding upon how to best split data into tables we often ask "What are the logical units of the data?" In other words, what is best represented by a single row of data. It is often convenient to think of physical representations when applicable. For example, what types of information can we associate with a patient that only appears once. A person usually has one name and social security number so these can be safely placed in a table. We might add date of birth. [On the other hand] a person can have many tests. They might only have one but they might also have fifty. Thus one person might have many tests and this is represented by a One-To-Many relationship…”

    A one-to-many data relationship exists when one record from one data source is related to several records from another data source; a single country in a Country data source will be linked to many entries within a City data source. This much is clear and well known to developers and users alike.

    So what is a one-to-many application platform? A one-to-many application platform is an application platform designed to optimize the delivery of many applications, each of which may have many implementations. And of course, each implementation may have many users.

    In the past, client-server applications tended to be bound by notions of physical location and ownership. My company owns an application server in Chicago and any of the local area network clients can use it. Using the medical record analogy above, this situation is a bit like building a doctor’s office inside of every one of your company offices just in case someone gets sick. Shouldn’t you send them to a clinic where the needs of many in the community can be served? Why monopolize the skills and equipment of a doctor for only one or two patients per day?

    Even with the introduction of wide area networks, VPNs, the Internet, and the like, we still got hung up with the concept of ownership. My company bought a software license and only our people can use our software on our server, but yes they can sit anywhere on the web when they do it. Now granted, this was very liberating. Physical space dissolved when using software applications. Networking, T3, WiFi and a host of other technologies have conquered the notion of space separating us from use of computer applications.

    So along comes the idea of Software-as-a-Service (SaaS) to break down another barrier. Through a concept known as multi-tenancy, the ownership barrier is broken down. Many different implementations of the same software application can exist within the same database. Each tenant’s data is firewalled from the others so that ACME Corp has no idea that ABC Corp is even using the same application. In this instance the physical servers and the software are not installed on the client computers. Only a web browser or client runtime engine need be installed, but the real application runs remotely on someone else’s physical servers. One-to-many computing is better served when the client side is capable of Rich Internet Applications (RIA).

    Gradually and then all of a sudden, SaaS became a popular trend as successes like bedazzled customers and Wall Street investors. The SaaS story sounded somewhat familiar to people who had been promoting hosted computing services. As the notion of grid computing sort of floundered for want of a customer base, the industry searched for a new hype cycle and found it in the notion of cloud computing. Cloud computing sort of combines the SaaS idea of Software-as-a-true-service with Software-as-a-do-it-yourself-service. Our application on your hosting server fits some people’s notions of what cloud computing is all about.

    Thinking back to our medical records analogy in the beginning to explain one-to-many data relationships. SaaS is a bit like having access to a doctor’s office. You can go there and see one doctor or maybe a few, but you are pretty much limited by the skills of the doctor and the equipment in the office. Seeing a doctor is great, unless you need the services of a hospital.

    A one-to-many application platform doesn’t just serve one customer and it isn’t limited to a single software supplier either. A true one-to-many application platform is independent of the underlying physical computing architecture and capable of sustaining n-applications across n-implementations with n-users. So while the application platform is unitary, it can not be bound to a single physical CPU or server in order to support its many applications, implementations and users. The architecture must be capable of application partitioning across multiple physical servers and data storage servers.

    Wednesday, June 23, 2010

    The Efficiency Impact of Insufficient Business Software Usage

    Today, software is a given in business. Whether information is your business or you simply need information about your business, software gets you the information you need. So why then do so many businesses reduce their operational effectiveness by trying to get by with fewer software licenses than they really need?

    Lack of available software for the knowledge workers in your organization has severe, often hidden, business consequences. While managers may think they are helping their business by limiting the number of software licenses to “just those who really need it,” they may instead be reducing operational effectiveness to the detriment of their business. Insufficient access to software adds to the cost of poor quality (COPQ) in a business.

    Consider these consequences of insufficient software:

    Improper Training and Acculturation. In many organizations, the employee on-boarding process does not include early access to needed software. As a result, initial training programs miss the mark or teach less efficient behaviors than those possible when the correct software applications are available. Poorly trained employees can deliver poor customer service, engage in a higher number of clerical errors, and negatively affect employee morale.

    Initial Period of Inefficiency. When licenses are not available for new employees, even beyond their initial training period, economic loss occurs during the waiting period to get on “the system.” Until then, payroll is spent on less efficient employees and bad work habits are further instilled.

    Improper Outsourcing and In-Sourcing. When a particular knowledge worker who could do a job, does not do a job because they do not have access to the software, they are forced to refer the task to someone else. This can result in costly external outsourcing. When another firm is needed to do a job that could be done if the right software were available to that person, extra costs and delays occur. Frequently, referring a task out to another worker means referring to another employee. These referrals create delay, introduce greater opportunity for miscommunication, and are inherently inefficient because of unnecessary communications surrounding, the request and the review process.

    Duplicate Work. Some companies maintain two separate software applications to perform essentially the same task, because they do not have sufficient software licenses for all workers to use one system. Some workers are on the old system while others are on the new system. Quite often, in these organizations, there is an employee who spends hours every week re-entering data or running batch jobs to synchronize systems – all of which could be avoided by working on one system only.

    Bottlenecks. When only a few of those who need access actually have access to certain business software, bottlenecks occur. Important business activities are delayed needlessly because the process is dependent on a limited number of persons who have access to the appropriate application. Some workers may be sharing a license, which means only one worker has access to the software at any given time. The waiting time for the available license creates need for communication, adds delays and creates bottlenecks.

    Overstaffing. When a particular software application is incorrectly labeled as a specialty and specific knowledge workers are hired to operate the software, the result is overstaffing. Increased specialized staff requirements can often be avoided by simply increasing the availability of software and training more workers on the use of the software. Sometimes these overstaffing inefficiencies can also be necessitated due to overly restrictive user rights management within an application. The user may have a license but does not have the user rights needed to perform the task. The economic impact is the same.

    Reduced Employee Morale. In today’s world of social media, rich applications, real-time integration and software mashups, lack of software access can be extremely frustrating to employees and result in reduced employee morale and higher turnover.

    Lack of Interdepartmental Enrichment. Is there a negative cost when salespeople are unaware of customer service issues because they are “not on the system” that keeps track of customer service problems and solutions? Absolutely. Extending software and information access beyond traditional departmental boundaries can enhance business processes. When the engineering team can directly access the customer support system, they may be able to propose immediate solutions or even detect product defects earlier than if they do not have access and must rely on monthly reports or other means of information sharing.

    Inefficient Business Processes. Perhaps the bottom line of failing to use software or using the wrong software is the cost of an inefficient business process. Most organizations go through initial training on a “how-to” use a software application. Entry-level instruction typically covers the performance of basic tasks. Without more advanced training and training on “when-to” and “why-to” use software, processes are executed ad-hoc or without full benefit of the efficiency built into the software system. Software underuse has severe economic consequences across all departmental functions in an organization: administration, finance, engineering, production, marketing, sales, distribution, service and operations.

    Competitive Weakness. Organizations that underuse software and skimp on the number of licenses available fall prey to competitors that operate at maximum productivity and software-enhanced efficiency. Organizations running without a sufficient number of software licenses will fall behind in innovation, time-to-market, market share, production capacity, customer satisfaction and top and bottom line financial performance.

    Insistence on expensive formal ROI studies and usage reports can incur a long and usually hidden list of business costs that can be easily avoided by simply taking a more aggressive view towards the availability and use of software. Software that works is worth every penny of its licensing cost. Cloud computing does not eliminate the problem, in fact, it exacerbates it. When software is viewed as an operating expense rather than a capital expenditure, artificial pressures increase to limit usage. Smart business people will make certain they have enough software licenses available for all of their users including sufficient licenses for future growth. How many licenses do you need?