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, salesforce.com, IBM and Oracle.
To learn more about uniPaaS Jet, visit the Magic Software blog.
Monday, October 25, 2010
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 Force.com. 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.
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 devnet.magicsoftware.com 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
Menu.
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.
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.
Easy User Generated Reports.
Fast, Highly Responsive Applications.
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.
Enhanced GUI Controls.
Multi Display Interface/Single Display Interface.
Menu.
Status Bar.
Rich Internet Applications (RIA).
Handheld Applications for Windows Mobile.
Rich .NET Controls.
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.
See the uniPaaS RIA demonstration application here.
Subscribe to:
Posts (Atom)