Saturday, June 27, 2009

Building Custom Field Service Management Systems




Mobile Field Service Applications are coming into increasing demand. The practice of Field Service Management (FSM) (or Field Force Automation (FFA) or Field Force Management (FFM) as it is sometimes called) involves optimizing business processes that provide on-site repair, installation, replacement and other services. Building custom field service applications rather than using off-the shelf solutions may be necessary for some businesses where proprietary processes and organizational structure make other solutions unfeasible. Mobile Field Service applications are typically deployed on Windows Mobile devices, however, iPhone, Blackberry and other devices are sometimes used as well. Programming of Custom Field Service Management software is often developed by enterprise IT departments or outsourced to system integrators and custom software houses.

As Gartner suggests, "Accelerated business demand to improve field service execution will favor two types of software suppliers: those with multiple application components and an underlying process design tool, and best-of-breed vendors with strong functionality, whose software is service-oriented architecture (SOA)-compliant or delivered using a software-as-a-service (SaaS) model. These capabilities enable the best-of-breed vendors to fit logically into (and more readily integrate with) a service management suite." The reason Gartner emphasizes service-oriented architecture so heavily here, in my view, relates to the nature of FSM software and not just Gartner's penchant for SOA programming. Because of the wide range of program requirements and unique proprietary dimensions of FSM software needs within an enterprise, Gartner correctly sees a need for extensive customization.

When building custom field service applications, it is important to consider the basic functionality and architecture of field service applications as well as the optimal development methodologies for establishing proprietary advantage through custom software development and service-oriented architectures.FSM requires development tools capable of creating Rich Internet Applications (RIA) for PCs and mobile devices.

Field Service Management: Functional Requirements Overview

FSM systems optimize business processes and manage information connected with on-site service. From a process viewpoint, the basic FSM process usually begins with a Service Request. The incoming service requests are matched against the available service staff and equipment in the Routing/ Dispatch process. Once deployed to the field, the On-Site Service itself occurs, in many use cases, field-based access to knowledge resources are involved. Inventory Processes involve management of products, replacement parts and supplies and may also incorporate cross-selling or up-selling methods. The Close Work Order process is a key milestone and trigger in FSM. Time Accounting, Billing and Collections typically follow the close of the work order. Sometimes, Scheduled Service Calls, additional on-site selling or appointments for follow-up visits are made at the conclusion of a job as well. The existence of warranty requirements or Service Level Agreements may affect process requirements as well.


Looking at the business benefit / functionality matrix as a functional tree, one can see the major branches as a) Build Customer Loyalty, b) Increase Revenues, and c) Reduce Costs.

FSM will Build Customer Loyalty by improving response times, standardizing service procedures, normalizing customer service policies, increasing first-call issue resolution, and enhancing availability of product, service and customer knowledge in the field. Service calls often begin with an initial sense of dissatisfaction on the part of the customer. Goof FSM can create a customer recovery culture wear the focus is on creating a positive customer experience that wins-back customers, building loyalty and a "customer-for-life" brand loyalty.

FSM will Increase Revenues by improving the efficiency of field service processes to capture overlooked service revenues; facilitating cross-selling of services and related products; and leveraging service excellence as a strategic differentiator and business driver. Customer loyalty lays the groundwork for enhanced revenues but it is not tantamount to the same thing. A good FSM system will guide service personnel through a business process that incorporates selling, winning of new appointments, full completion of prior purchase and service commitments, and procurement of profitable service-level agreements.

FSM will Reduce Costs by creating more efficient business processes, increasing productivity of field personnel, improving control of assets, and reducing duplicated effort. Components of efficiency come through elimination of duplicated effort, tightest possible coordination of resources, and improved availability of information. It is often said that you can't expect what you don't inspect. A key component of process efficiency can often come through the application of geo-spatial information management. Geo-spatial information makes possible more efficient routing, tighter scheduling, and better deployment of human resources.
A detailed functional specification for FSM will include functionality related to: centralized administrative and management functions; geo-spatial functional requirements; service management dashboard and business intelligence requirements; and mobile field service functional requirements. Each business will have uniqueness in its products, service procedures and organizational structure that drive needs and requirements for unique internal and customer facing processes and capabilities of the FSM system.

For Additional Information

Magic Software Enterprises and our business partners are experienced in developing custom field service business applications and extensions for customers seeking best-in-class service capabilities and business efficiencies. For additional information on how services based on the uniPaaS application platform can facilitate the development of FSM systems, please contact us at info@magicsoftware.com.

Tuesday, June 23, 2009

RIA Developers Training Hot Topic As Growth in RIA for Business Fuels Job Market

Rich Internet Applications are fully interactive desktop-like business software applications that are installed at a single host server location and are accessible from any client station over the Internet. RIA applications fall into two major classes: browser-based and browser-free.

The need for a workforce skilled in RIA development is creating demand for Rich Internet Application training in a variety of RIA development languages and platforms. With something like 360,000 application programmers in the United States alone and with RIA one of the hottest job growth areas in the IT industry, you can be sure that tens of thousands of jobs -- new highly-paid jobs -- will open up that require RIA programming skills over the next few years. Within a decade, 100,000 programmers with RIA development skills will be needed. The problem as I see it, is that with the most mainstream approaches, the toolsets and skillsets required for RIA are needlessly complex and fractured.

With the uniPaaS application platform for RIA development, there is one development paradigm for both server-side and client-side development. With all others you must learn at least two scripting languages: Adobe Air / Flex / Flash / Catalyst; Microsoft Visual Studio (Basic, C#, etc.) / Silverlight; AJAX / JavaScript / Java. It is easy to get started with the free uniPaaS Jet download.

So I think many developers will consider it very good news that free RIA developers training for uniPaaS is now available online at the Magic Software Enterprises "Magic University" Computer-Based Training center. Smart IT departments will get there teams trained as uniPaaS developers and avoid the inevitable shortages of programmers, system architects and programmers with the multiple skillsets needed to produce coherent RIA applications.



According to the course description: The Getting Started with uniPaaS Rich Internet Application course is intended to teach the basics of programming with uniPaaS and Rich Client. The primary goal of the self-paced training is for the student to build a basic Rich Internet Business Application. When the course is completed, the student will have finished a course project which is a training application that was developed specifically for the course. By working toward the completion of the course project in a hands-on manner, the student learns the fundamentals of how uniPaaS operates and how to program in uniPaaS.

This is no lightweight online training session, however. The course contains 24 chapters presented in logical order, progressing from simple tasks to advanced concepts. To be successful you should really concentrate on the hands-on activities within the course. By working through the sample and practice exercises, you will discover uniPaaS from A to Z as it relates to Rich Internet Applications.

With this self-paced training course, you will be preparing yourself with the skills needed for RIA development of business applications. Unlike other approaches, you can be productive more quickly and develop applications in a self-sufficient manner. here is what you can expect:

1. Learn the fundamentals of uniPaaS and how to get the best out of uniPaaS.
2. Become familiar with the uniPaaS Studio interface.
3. Get to know the uniPaaS wizards and utilities.
4. Understand the uniPaaS concepts.
5. Understand the uniPaaS standards.
6. Create a basic uniPaaS business application that:
  • Has a full GUI interface.
  • Works with an SQL database.
  • Exhibits one-to-one and one-to-many data source relationships.
  • Produces reports.
The 24-chapters or modules cover topics involving the data layer, business logic layer, communication/transport layer and presentation layer of your application.

1. Introduction
2. uniPaaS Studio Interface
3. Your first program
4. Data Manipulation
5. Data Validation
6. Setting Initial Values
7. Controlling the Form's Appearance
8. Viewing Data Source Content
9. Object Data Centralization
10. Application Engine Concept
11. Events
12. Handlers
13. Conditioning Block of Operations
14. Repository Manipulation Tools
15. Find Reference Utility
16. One to One Data Relationship
17. Selecting Data from a list
18. One to Many Data Relationship
19. More about the Deployment Engine
20. Reports
21. Complex Reports
22. Processing Data in Groups
23. Menus
24. Application Deployment

One of the clear differences with uniPaaS is its metadata driven approach to development. I think this is one of the reasons why uniPaaS does not require an additional scripting tool. When everything is based on metadata originally, in the core of the application platform, engine and design, then there is no need to recreate the alphabet to adjust to new requirements such as RIA deployment. Both the architecture and the development paradigm of uniPaaS are metadata centered and so this allows for tremendous forward migration of business logic and appropriate simplification of the development task.

Monday, June 22, 2009

RIA Development Tidal Wave Hits New York


The RIA Development Tidal Wave hit New York today with Magic Software Enterprises Americas CEO Regev Yativ addressing the AJAXWorld RIA Conference on the topic: "Are Rich Internet Applications Ready for the Cloud?"


Yativ presented a number of fresh ideas that showed how RIA is reducing “Time-To-Cloud (TTC)”. He suggested that the growth in RIAs is being nurtured by several strong trends:


  • The ubiquity of broadband Internet access.

  • The fact that time spent on the Internet exceeds time watching TV in the highly coveted younger demographic, and is nearly equal in the population as a whole.

  • Explosive increase in Web 2.0 sites and usage.

Yativ says that with the current "Web 2.0 frenzy", surfing the web has been replaced by Googling, Twittering and Facebooking. Regardless of why the use of the Web is changing, it is impacting how new entrants into the workforce think and react to business software and is therefore creating a huge need for Rich Internet Applications in business.

Clearly, business users are driving the demand for RIA in business. Properly implemented, RIA can help IT departments as well. RIA allows access to enterprise application data and functionality via alternative interfaces and reduces the number of technologies needed in the organization not to mention the required skill-sets needed.

Yativ showed how RIA replaces outdated technologies and reduces project and budget risks as it extends Enterprise Applications to business users. He also mentioned the benefit of Business Process Automation (BPA) via RIA interfaces as a way to automate business processes. Presenting information in the context of relevant business processes and in accordance with users' roles was also mentioned. Yativ sees all of this as part of a more Service Oriented IT Delivery focused on business needs.

A key concept introduced by Yativ was "Time to Cloud." Reducing the time needed to create Rich Internet Business Applications will result in greater "ROEI" or "return on existing investment" a notion that Yativ says is far more important in today's economy than ROI. Clearly, Yativ's presence at the AJAXWorld RIA Conference landed like a tidal wave at the event with a business oriented message for RIA development that was well received. uniPaaS has arrived.

Tuesday, June 16, 2009

uniPaaS 1.8 Delivers RIA Development for Windows Mobile

The release of uniPaaS 1.8 will be significant news for those seeking to develop Rich Internet Applications (RIA) for Windows Mobile devices.

With uniPaaS 1.8, you can expand your IT offering by supporting Windows Mobile devices alongside stationary desktops. Smartphones have become enterprise-class, making this a top 2009 priority for many IT departments and a key part of their IT strategy. With the metadata-centered productivity principles of uniPaaS, you can now easily produce highly interactive mobile applications. Existing Magic applications can be upgraded to uniPaaS and deployed as Windows Mobile applications. Most of the changes required to your application will obviously be in the graphical user interface. New applications destined for Windows Mobile can be quickly generated from the data table structure you design for your application.

As Michael Singer and I have pointed out in many previous webinars, developing mobile applications with uniPaaS is very similar to developing RIA for desktop display. Obviously, the main difference between desktop RIA and Mobile RIA is the consideration of the mobile devices’ viewing area and the expected user experience, such as touch screens and styles, and the deployment methodology. The new documentation for uniPaaS 1.8 highlights a number of important considerations.

First, there are a few prerequisites you should take into consideration. RIA applications require that you install the .NET Compact Framework and the Smart Device Framework on the mobile device. The Rich Client Deployment Builder generates an HTML that contains links to these framework files for easier installation. This means that you can simply browse the mobile device to the HTML file and install everything needed from there. Once the installation completes, the browser is no longer needed. Direct installation to the mobile device is also possible by following instructions that came with the device.

The RIA development paradigm for Windows Mobile is similar to the RIA development paradigm for other Windows versions; with these caveats: mobile devices have smaller screen sizes. Consequently, navigation is more complicated. Applications screens need to be designed to account for the much smaller "real estate" of the mobile device. Because mobile devices have unique screen resolutions, use of placement is recommended.

For the popular QVGA screen format, it is recommended to use Microsoft Sans Serif 8 font in the form properties. In addition, a width of 49 and height of 20.5 is ideal.

You should also keep in mind that mobile devices perform more slowly than desktop PCs. Good application design will find the right balance between client side operations (where the performance is slower) and server side operations (whose results require communication time and consume bandwidth). Try to avoid approaches that push large amounts of data to the client or call on the mobile client to perform extensive calculations. The good news is that bandwidth is improving all the time, with megabit throughput levels reliably available through networks such as WiMAX, EV-DO Rev A, and HSPA.

Keep in mind that the .NET Compact Framework does not include all of the functionality of the .NET framework. You will see that Mobile applications work differently. For example, the main menu opens from the bottom of the screen up in a mobile application. If only two options are possible in a menu, the items are displayed in smartphone style with the first item on the left and the second on the right side, both selectable by the corresponding smartphone key. I won't get into all the differences between .NET and .NET compact here, but you should look carefully at the uniPaaS Mobile Deployment – Supported Properties page in the uniPaaS documentation contained in the help file.

A new uniPaaS function called IsMobileClient allows you to see whether or not the client is a mobile device or not. In this manner, you can optimize your application to perform differently for mobile devices and desktop devices. Since you will have designed all of your underlying business functions using components, this really only effects the user interface layer of your application. You can use this function, for example, if you need to dynamically select a form suitable for a mobile device, or to process some logic differently based on the fact that the user is known to be mobile.

There are many, many more improvements in uniPaaS 1.8, including of course support for the use of any .NET control or assembly within your uniPaaS application. You can upgrade the look and feel of your Rich Internet Application by directly placing new .NET controls into your RIA user interface. You can also enhance the functionality of your RIA by integrating any .NET assembly. We will take a much closer look at this and other features of uniPaaS 1.8 in a future article.

Friday, June 12, 2009

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

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

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

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

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

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

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

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

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

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

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

Just by eliminating inefficiency you can:

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

Thursday, June 11, 2009

Extending Mainframe Applications for RIA and Mobile

Mainframe applications and Rich Internet Appliations (RIA) may seem like strange bedfellows. But enhancing and extending mainframe applications as Rich Internet Applications may be an important requirement for organizations seeking to modernize business applications in the Web 2.0 age.

As younger workers used to social media and other Web 2.0 dynamics enter the workforce, pressure will increase on mainframe IT organizations to enhance and extend their applications in a manner that makes them look and act like Web 2.0 applications. Not to mention the demand for mobile access to the same core business functions.

While uniPaaS is an ideal RIA development tool for Windows, Linux, UNIX and IBM i operating systems, the uniPaaS server itself does not run on the mainframe. In a post on my JD Edwards integration blog, I discussed Mainframe Integration Patterns that can be used with iBOLT. I represent the same discussion here, but in the context of creating uniPaaS RIA extensions for mainframe applications:

When using the uniPaaS application platform to meet the needs of RIA and Windows Mobile users, it will be necessary to find the right point of access to the mainframe. Challenges to be considered in mainframe integration include fundamental differences between systems such as EBCDIC versus ASCII text character set encoding. Finding metadata information about file structures is also fundamentally different between mainframe and other systems. On the mainframe, most of the programming is performed in COBOL and data is defined and contained in the COBOL copybook. Often, the copybook is the only source of metadata as well. In addition, consideration must be given to whether processing on the mainframe occurs in online processes, batch processes or some combination.

Extending a mainframe application by adding new RIA clients will cause the application architect to consider whether the application requires synchronous real-time, semi-synchronous near real-time or asynchronous batch methods.

Mainframe database adapters. A database adapter connects directly to the mainframe database and polls for changes in the database or responds to database triggers. These adapters can normally read, write, erase and update data in the mainframe database as well as deliver the mainframe data via certain protocols. Database adapters are very powerful and low-level solutions but have the fairly significant disadvantage of requiring the integration architect to have extensive knowledge of the database structures used and the application processes. While reading from a database is less problematic, writing directly to a database is problematic and could even void vendor support obligations for off-the-shelf software.

Mainframe ODBC adapters. Another approach is to use an ODBC driver, such as the one built-in to the SNA server or one of many available from third-party software vendors. The ODBC driver has the advantage of being more widely accessible by third-party software vendors, but in the end has the same fundamental limitations or risks associated with direct database adapters or access.

FTP. File Transfer Protocol (FTP) uses TCP/IP and provides a way to transmit files between diverse systems including mainframes, Linux systems, IBM i, UNIX systems and Windows servers. On IBM mainframes, the z/OS operating system includes capabilities for both get and put commands to transfer files. Serious limitations exist for FTP based integration, however: 1) The amount of parsing required to get to the relevant data is often extensive. 2) Security exposures are not trivial and require painstaking attention. 3) FTP is resource inefficient by requiring a separate data connection for each file transferred. 4) Parsing of the FTP directories is also complex. 5) For high volume integration requirements, managing all of the FTP files can become problematic.

Proprietary APIs. Proprietary APIs may at first seem attractive based on the specificity of their integration to a specific application. This may also be a point of weakness, however, as a great deal can be invested in terms of licensing and labor to make these APIs work and they are essentially single purpose. If you later find that you need to extend a different RIA application, you are back to the drawing boards in you search for the right integration pattern. A better approach would seem to involve a generalized integration solution on both the mainframe side and the non-mainframe side of the integration scenario.

3270 Emulation. Another option for mainframe integration is 3270 emulation. Clearly this is a strong candidate for RIA extension as it provides entry to the user interface itself. Adapters are available that will publish a secure Web service that enables bi-directional communication with mainframe systems and applications via the user interface stream known as 3270. The advantages to this approach are the relatively small amount of integration work required on the mainframe side. An expert user can spend a few hours training the emulator to find the right workflow to reveal the data or conduct the transactions and other I/O needed. However, the integration possibilities will be limited to those provided by the application to the user. If there is a need to go outside of these limitations, then this might not be the best integration pattern. In addition, the risk of inappropriate integration design needs to be carefully considered. Even expert users may be completely unaware of the ramifications of a particular interaction. Nevertheless, this will be a method chosen in many instances. The trick is to avoid the trap of just stuffing the mainframe application into the browser using one of these screen scraping type tools. Security concerns and usability issues are not trivial.

Messaging Queues (MQ). With JMS or WebSphere MQ on the mainframe, a messaging protocol can be observed that includes message brokering capabilities and greatly enhances the integration system. In many respects, messaging is the best gateway to application-to-application integration. But it should not be mistaken as a great solution for RIA extensions. Not all mainframe systems are equipped to handle MQ and certainly yhe investment required off the mainframe would be considerable. Unless you alrady have MQ present in both mainframe and non-mainframe servers, I would skip this approach. Other protocols such as CICS may be preferable not only for their relatively greater presence, but also because of the strong knowledge base in the mainframe IT community regarding their use.

CICS. Customer Information Control System (CICS) is a mainframe transaction server designed for mostly interactive rapid, high-volume online processing and can also perform background processes. With a CICS Adapter, the uniPaaS application platform can be made to appear like another CICS server (including its clients) to a mainframe system. CICS support for multi-region operation (MRO) provides a simple and secure entry-point into the mainframe application environment without the need for extensive programming. Some CICS integration solutions utilize Web Services to interface CICS on the mainframe to the outside world. So with CICS we have another excellent pattern for mainframe RIA extension to utilize the CICS adapter to connect to the uniPaaS application platform, thereby eliminating the need for multiple interface development and simplifying the deployment of the refactored mainframe applications as RIA applications.

To manage RIA development and RIA mobile development of Rich Internet Business Applications, the uniPaaS application platform is an excellent solution. More information on the uniPaaS Application Platform is available from Magic Software Enterprises.

Tuesday, June 9, 2009

A Conversation with Business Trends Quarterly on uniPaaS RIA Development and SaaS Deployment

I had a nice conversation on Rich Internet Applications development and SaaS development and deployment with Daniel Dern of Business Trends Quarterly.

Business Trends Quarterly targets 35,000 "senior level business and technology executives with in-depth analysis of, and key insight into market trends and innovative technologies."

Daniel made a great observation about uniPaaS when he wrote: "That is, if you're an ISV, you create your app as one code base, rather than separate versions for full client, web-based, on-premise/on-demand, RIA, SaaS, localized, globalized...much simpler!" You can read the entire article on the Business Trends Quarterly site or get more information. For more information on uniPaaS Rich Internet Applications development or SaaS Development see the Magic Website.