Service-oriented architecture (SOA) is an elegant and helpful solution for larger enterprises that need frequent online interaction with business partners. For smaller enterprises, it's still largely a luxury.
SOA continues to be touted as something like an approaching Golden Age. Just over the horizon is this wonderful world where all software will consist of modular components, callable across the Internet to be reassembled into applications that will be concurrently multipurpose and custom-built.
While the something-from-parts concept may have originated as far back as the first A.C. Gilbert Erector Sets some 90 years ago, the idea of modularization in software has been around for a couple of decades now. In SOA, the idea is translated to software modules called Web services, which are executables that are sharable between applications, platforms, and companies. While it's an elegant solution with plenty of promise, for enterprises using the IBM i, it still represents a cultural change for developers seeking to tap into its potential. SOA offers a useful menu-like approach to building apps, but an about-face when it comes to thinking about sharing software components and access to applications in a world where protecting those very assets from unauthorized use seems to be the overriding concern.
Eyeballing That Magnificent Magnum
One way of simplifying this conundrum is to think of SOA as a kind of champagne. Large companies that have big budgets (for which juggling many disparate functions is a normal part of business) or that have a demonstrated need to tie software functions together with a number of partners can afford to lubricate their operations with a bit of the bubbly. Smaller companies on more of a beer budget, however, need to think twice about jumping into SOA just because it appeals to corporate vanity to have some.
SOA is really a collaboration method. Functions and events, with their corresponding applications and services, are brought together and coordinated. SOA provides a structure made up of composite applications that execute key functions (e.g., coordinating shipments of goods from multiple locations) or offers a process that supports a flow of activities consisting of many steps within one enterprise or a group of partners acting together to reach common goals (e.g., maintaining a supply chain).
Therefore, building this collaboration method isn't strictly about designing applications; it really is about architecture. Gartner even coined a term back in 2007 that it continues to tout and that is gaining a foothold in the lexicon: service-oriented development of applications (SODA), which it defines as "the conceptualization of a style of development" that uses Web services as a unit of delivering SOA applications.
Pinot Noir or Pepsi?
The question is whether or not your enterprise is really ready for SODA, not just SOA. Being conceptually ready for SOA is easy; it sounds great. But is your IT department culturally ready for a new style of application development? Does your organization really need to share software functions with multiple business partners? Do you have access to expertise in using eXtensible Markup Language (XML), Simple Object Access Protocol (SOAP), or Common Object Request Broker Architecture (CORBA) to extract or exchange software and data across the cloud?
Best use of SOA requires an environment of complex operations and the coordination of more than a handful of software systems. SOA intercommunication depends on messaging between services to function. Unless you are providing your own services, what are your guarantees for service quality and compatibility? How do you effectively test SOA apps when there aren't really any standard SOA-app testing tools? How can you manage and control the messaging information flow? How do you ensure information security, especially if more than one enterprise is involved? How can you know if SOA apps can run as efficiently on your hardware as your legacy apps do? And if you're looking to a cloud service provider for help, there are all the contract options and service concerns connected with that to take into account. You need to consider these factors, and others, before deciding to use SOA.
Corkscrew or Churchkey?
SOA isn't dangerous, except in the sense that it may be budget-busting overkill for a smaller enterprise to undertake. However, even for a smaller company, if positioning itself for growth, SOA can be the key to a prosperous future by providing a more efficient means of executing important business functions. Just be aware that it can take the resources of a larger company to gain the real sparkle from what's in the wine glass, as opposed to simply generating a bit of light-headedness and some ominous rumbles in the deep.
If you decide SOA is for you, this article provides an overview of the IBM i-compatible development tools and integrated development environments (IDEs) that support SOA frameworks. One of these tools can help you create the kinds of applications that work best in an SOA environment.
The product descriptions given here are simply summaries of a few significant features. You should consider the issues surrounding SOA and get more complete information on available tools before making any decision.
And as always when looking for products or services, be sure to check the MC Press Online Buyer's Guide.
SOA Architecture Tools for IBM i
ASNA Visual RPG for Microsoft Visual Studio .NET
ASNA Visual RPG (AVR) is a version of RPG designed to facilitate construction of applications for Web and Windows. Applications built with AVR can include Web services and can enable developers to reconstruct IBM i applications to use an SOA framework via Microsoft .NET and Microsoft Intermediate Language. AVR produces RPG source code that supports XML, SOAP, and other SOA-compliant industry standards.
CA Plex is designed to facilitate application-building in Windows environments that incorporate SOA, Web-based, and wireless-device features and then test and deploy them on IBM i, Java/J2EE, and Windows/.NET platforms. CA Plex uses patterns, which are standard pieces of code that execute specific functions and relieve programmers of manually coding repeatable application elements. CA Plex generates code in user choice of RPG, C++, C#, or Java.
Centric gives developers access to the presentation, application, and database layers of applications, thereby making new and legacy apps easier to integrate with other software and platforms. It also lets programmers develop reusable modules for multiple applications, build composite applications that include mobile-device deployment, and create applications that can access databases on zSeries, Linux, and Windows platforms as well as IBM i.
Re:new lets developers reuse business logic from legacy 5250 apps to build new apps and modules that support SOA architecture. This may include adding Web services to back-end functions, updating existing software, and integrating legacy apps with apps on other platforms.
Soarchitect helps programmers generate SOA-friendly components from existing RPG or COBOL source code. This can enable use of Web services to give business partners access to your applications, to build standard user interfaces for multiple applications, to integrate MS Office apps to facilitate Web-service use, and to help protect applications from disruption during application or platform upgrades.
ClearPath Modernization Suite
ClearPath Modernization Suite is an integrated tool suite for constructing Web-based and SOA-friendly applications. The suite includes WebSmart Presto, which lets developers integrate new SOA, AJAX, and UI elements into legacy apps without changing those apps' source code. Other members of the suite include WebSmart ILE and WebSmart PHP, which also support SOA-friendly Web app building or Web legacy extensions in RPG or PHP; the Catapult and Clover Query report distribution and query tools; and Nexus Portal, a Web-portal generator.
DB2 Web Service Enabler
DB2 Web Service Enabler (DB2WSE) doesn't directly generate application code, but it supports SOA application enablement by facilitating XML access to IBM i databases from applications running on other platforms. External programs can call DB2WSE, which generates appropriate SQL statements for accessing DB2 data and enabling cross-platform database operations, particularly within an SOA structure.
Fiorano SOA Platform
Fiorano SOA Platform provides a visual environment for building distributed applications, as well as an event-driven architecture in which those apps can execute. Drag-and-drop tools let programmers move app components, map data flows, access libraries of database and messaging adapters, and use legacy applications as building blocks to design SOA-compatible software.
RPGsp (RPG Smart Pages)
Profound Logic Software
Although primarily designed as a green-screen application modernization tool, Genie can also incorporate support for SOA and AJAX into new applications. Product features include a WYSIWYG designer, flexible integration capabilities, a library of chart types for application enhancement, and support for SSL and i5/OS security.
RPGsp provides a development environment for extending legacy applications to the Web or building new, Web-friendly ones. RPGsp generates graphical features, converts screens and code to support HTML, and includes built-in programming tools such as wizards, a visual debugger, and a code editor. RPGsp also includes support for adding SOA, AJAX, Web 2.0, and e-commerce features in applications it generates.
iWay SOA Middleware
A suite of software adapters that mediate communications between SOA services and applications, files, documents, and data, iWay SOA Middleware helps developers build applications with a wide range of third-party development tools. The middleware adapters provide interfaces between components such as Web service functions and information resources.
RAMP from LANSA
LANSA Integrator facilitates XML-based communication between different applications and enterprise business partners. It supports SOA by enabling integration of Java Web services with LANSA and 3GL programs running on IBM i and other platforms. It also enables publishing of Web services between enterprises via SOAP, sending and receiving of XML transactions between suppliers and distributors, and integrating back-office systems via MQSeries.
RAMP (Rapid Application Modernization Process) from LANSA is a modernization suite for IBM i applications. It provides an application framework that's deployable as either a Windows rich-client or Web app browser, within which developers can integrate application navigation and organization components, repurposed 5250 screen applications, and browser applications. Its toolset lets enterprises replace 5250-based application components with new ones that support technologies such as Web services and SOA, either all at once or on an incremental basis.
Visual LANSA is LANSA's IDE for building Windows, Web, and IBM i applications. Product features include a visual data modeler, a UI framework, a prototyping wizard, a UI framework, a visual data modeler, and tracking and version controls to support team development. Applications developed with Visual LANSA support application design patterns, including SOA and MVC. Surround Technologies' Accelerator for Visual LANSA is an optional toolkit that augments Visual LANSA capabilities.
Rational Developer for Power Systems Software
Rational Developer for i for SOA Construction
IBM's Rational Developer for Power Systems Software helps programmers build software for IBM i, AIX, and Linux systems. Features include editing capabilities (e.g., outline assist, color tokenizing, compilation-error feedback), visual design of IBM i DDS display and printer files, multiple-language support on i (e.g., RPG, COBOL, Java, C/C++), and visual-analysis tools to facilitate understanding of application structures.
IBM's Rational Developer for i for SOA Construction lets developers either build Web 2.0 and SOA applications in EGL that use RPG, COBOL, and EGL programs as back-ends or turn those back-end programs into Web services themselves. Generated applications interface with IBM WebSphere, MQSeries, i5/OS data queues and data areas, ILE service procedures, and i5/OS security. The product also offers a broad palette of features and tools for application development and modernizing legacy app user interfaces.
Strategi SOA facilitates division of server applications into SOA components, enabling developers to build new Web applications or Web extensions of legacy applications. Strategi can generate components from legacy apps that function in Visual Studio, .NET, and Eclipse environments. In addition, the product features a template-based architecture that separates application, programming, and presentation layers.
Strategi webSERVICES is a framework that lets developers create industry-standard interfaces for legacy apps using third-party development tools (e.g., Visual Studio, Eclipse, and Dreamweaver), send messages to and from other IBM i applications (i.e., those of business partners) via the Internet, and consume Web services on the same or other systems coming from .NET, XML, Java, RPG, and COBOL apps or public providers such as Google and Amazon.
Skyway Builder includes modules for generating Java DAO code for accessing relational databases, an object/relational mapping (ORM) generator for accessing ORM layers in Spring applications, a Web Services generator, and a Web presentation layer for generated applications. The product is based on Eclipse, the open-source Java IDE, and applications generated using it will run on IBM i machines using Java. It's also integrated with SpringSource Tool Suite, which runs under Tomcat and Apache.
TIBCO Adapters are software interfaces that let enterprises integrate applications, databases, and other IT elements into an SOA architecture. The adapters work with legacy apps and other components to provide a means of exchanging data between those components via publish/subscribe and point-to-point messaging. Application adapters operate with SAP R/3, PeopleSoft, Oracle E-Business Suite, Lotus Notes, and other third-party software. Database adapters work with DB2, Oracle, Sybase, and others. Network adapters interface with WebSphere MQ, EJB, COM, CORBA, and LDAP structures.
Verastream is a suite of products that includes tools for bridging 5250 and 3270 emulation systems, DB2 and other databases, and transaction systems to help make legacy applications part of a larger system of composite applications. Composite applications can take advantage of reusable Web services, XML, JavaBeans, and .NET components. They can also provide real-time integration of legacy functions with new or third-party application suites.
The X-Analysis Suite includes not only Databorough's well-known legacy application-analysis and documentation product, but a number of other modules that provide key assistance in converting legacy apps to operate in an SOA architecture. These include an X-Modernize module that accesses data in the X-Analysis repository to automatically convert DDS and RPG to SQL and stored procedures for use in SOA environments; Application Migration, a migration tool for DB2 applications on IBM i; and X-Redo, which reuses the business rules, data model, and user interface design models to provide a blueprint for recreating legacy applications in Java, .NET, or EGL.
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7,