Archives

Strategic Technology: Web Content Management (IBM WCM)

This entry is part 21 of 33 in the series Strategic Technologies

WordPress, which I use to produce my blog, is an example of a content manager. WordPress allows me to create my blog without writing any code or HTML by separating content from presentation.  The content that I enter is stored in a database.  I can select from various themes that control how it is displayed.   All of the functions required for blogging have been built into the platform by people who know a lot more about blogging than I do.  I can enter blog posts, store images, use images in blog posts, etc.  I can add plug-ins that provide additional functionality such as arranging posts into a series, filtering out SPAM comments, etc.  Look at my “Blogging” menu for more info about WordPress and blogging.

Enterprise class Web content management technologies such as IBM Web Content Manager (WCM) bring more sophisticated functions such as ease of use for business users and workflow that enable the types and uses of content needed by organizations.

Strategic Technology: Lightweight Web Development Tooling (IBM WEF)

This entry is part 22 of 33 in the series Strategic Technologies

Lightweight Web development tooling goes hand-in-hand with Web content management for creating a sustainable commercial Web site.  To continue to draw users a Web site must constantly freshened with new content and functions that are tailored to the individual visiting the site.  This would be very expensive to accomplish if a team of expert Web developers were needed to do it.

Fortunately, lightweight development tooling and content management allow business users, Web designers, and less experienced developers to make many of the day-to-day changes.  Some setup by expert developers is generally required, but once this is accomplished other users can make significant changes to the Web site without deep technical skills–no coding required.

IBM’s primary lightweight Web development tool is Web Experience Factory (WEF).

Strategic Technology: Web Site Platform (WebSphere Portal)

This entry is part 23 of 33 in the series Strategic Technologies

A Web site goes beyond an app.  It is the internal or external home base for an entire organization and represents a common entry point to all of the organization’s information and digital services for a particular audience, be it customers, partners or employees.  For this reason it needs functionality to bring together many elements of control, content, applications and technologies.

A Web site platform should support responsive design or some equivalent, allowing a single set of Web pages to display and accept input properly on devices of different screen sizes and in different orientations.

IBM’s technology in this space is WebSphere Portal Server.  JSR-286 portlets are the UI componentization scheme used to bring together different applications and technologies.

The Web site platform needs to integrate with other closely related technologies including:

Strategic Technology: Web Application Development Tooling (IBM RAD)

This entry is part 24 of 33 in the series Strategic Technologies

A Web application goes beyond the shallow functionality of a Web site to offer deep digital services such as transactions which affect the organization’s systems of record.  For this, expert developers use sophisticated tooling to build unique and complex systems of engagement that are able to manage transactions against multiple back-end systems.

IBM’s Web application development tooling is Rational Application Developer (RAD).

Whatever your Web application development tooling is, it needs to integrate with your mobile application development tooling.  IBM’s development tooling is built on the Eclipse platform, allowing different developer modules to integrate.

Strategic Technology: Mobile Money Apps (Monitise)

This entry is part 25 of 33 in the series Strategic Technologies

 

IBM and Monitise have recently announced a partnership to deploy new mobile banking, payments and commerce solutions.

Monitise provides services to more than 350 financial institutions and has partnerships with most UK high street banks. It also has strategic partnerships with Visa Europe, Visa Inc., RBS Group, Telefónica Digital and FIS to create and deliver their Mobile Money services in developed and developing markets.

RBS uses the Monitise Bank Anywhere mobile banking solution to “provide features like peer-to-peer payments, balance and transaction history, transfers and bill payments, as well as developing new functionality to keep users engaged and banks up to date with the latest innovations.”

PermataBank in Indonesia uses the Monitise Pay Anyone mobile payments solution together with AGIT Monitise Indonesia to provide peer-to-peer payments using a mobile number, bill payment, and international transfers.

Monitise also provides Buy Anything and mPOS solutions.

IBM and Monitise previously announced a partnership to help Visa Europe “provide its member banks with new mobile banking, payment and commerce services in the cloud for its customers.”  Monitise’s Bank Anywhere, Pay Anyone and Buy Anything solutions form the basis of Visa Europe’s forthcoming mobile offerings that will provide the most popular banking services used by consumers today on any mobile device. This includes applications for customers to manage money in their accounts, payment services to transfer money and pay other individuals; and transaction services to buy products from retailers, either online or in-store.

Strategic Technology: JavaScript, Frameworks and Libraries

This entry is part 27 of 33 in the series Strategic Technologies

I feel a little crazy listing JavaScript as a strategic technology — Even more crazy enumerating the related frameworks and libraries, which seem to replace each other far too frequently to be considered “strategic”.  But I want to make the point that how you build Web applications (including mobile Web and hybrid apps) can have a material impact on the competitive advantage of even the largest banks, and that makes it a strategic topic.

Never has any programming language been adopted as widely as JavaScript.  The power and flexibility of the language as well as the extensive support by open source frameworks and libraries makes it very likely that JavaScript will continue to be the basis for most of the Web applications of the coming years.

Generally, I consider a library to be any set of related functions packaged up to be included in an application.  Some libraries are built by the app developer and some are external.

I consider two types of frameworks:

  • A set of libraries that work together in a tightly integrated way
  • A library that acts as a main function such that building an app means mostly filling in the blanks (overriding object methods in a prescribed way).

Two of the most important JavaScript libraries, in my view, are Dojo and jQuery.  These foundational frameworks build on Ajax to build Web 2.0 user interfaces.  A key early decision point for an enterprise architecture team would be which one of these two frameworks (or more likely a deft mix of the two) to get behind.

Note: The classic Web application architecture, where you build Web pages and “screen flows” on the server side with frameworks like Struts, JavaServer Pages (JSP) or JavaServer Faces (JSF) is nearing end-of-life (i.e. not strategic).  This architecture has been replaced by the Web 2.0 rich internet application (RIA), where apps use only a single page or a few pages to provide a page-oriented user interface (POUI).  The pages are built and updated by client-side JavaScript or similar client-side scripting language or mechanism.  Besides being more functional and attractive, RIA’s are more scalable because they move most of the user interface (UI) processing and information that the app stores about the state of the UI to the client, freeing the server memory and CPU to handle more clients.  For more on this please see Modern Web Development with IBM WebSphere.

 RIAs are generally divided into client side and server side components which communicate with each other via an application programming interface (API).   The trend is for this API to be made up of REST interfaces which transmit data in JSON format.  Invoking API interfaces and handling the results within the client is the core function of Ajax.

Client-Side Architecture

On the client side (again from Modern Web Development with IBM WebSphere):

RIA client side architecture 05fig10

JavaScript-based client architectures are standard for Web RIAs, mobile Web RIAs, and hybrid mobile apps.  There are a number of proven architecture stacks for doing this.  Two of the most popular are jQuery-Toolkit-based and Dojo-Toolkit-based.

Mobile Client Side Architecture based on the jQuery Toolkit

A configuration of JavaScript frameworks being used in mobile Web and hybrid apps (especially in conjunction with IBM Worklight) are:

  • Cordova (access to native mobile capabilities)
  • jQuery (General JavaScript library, especially for the DOM)
  • jQuery Mobile (navigation, page management, responsive grid)
  • Backbone (MVC, controller)
  • Underscore (Requires dependency library for Backbone)
  • Handlebars (templates for creating views)
  • JQM Themeroller (styles)
  • RequiresJS (class dependencies)
  • Twitter Bootstrap (responsive grid)
  • LESS/SASS (styles).

 

 

Strategic Technology: Application Deployment Automation (UrbanCode Deploy)

This entry is part 28 of 33 in the series Strategic Technologies

Continuous Integration and other modern code development practices seek to manage scale and complexity, and increase speed and quality, by introducing automation across the software development life cycle (SDLC).  This is especially true of areas that occur frequently and contain many repetitive steps such as the deployment and release processes.

Development teams tend to build and deploy the code for one or more components to a development test server frequently as part of an agile development process in order to find code integration problems early and make sure they have a clear understanding of the status of a project.  However, this can be a laborious and tedious process, screaming for automation.

Additionally, the complexity of releasing enterprise applications to production requires that the release process be well-tested beforehand, and increasingly development teams are finding that the best time to start this testing is during development and early testing efforts.  This requires that the development team use the same process and tools during development that the operations team will use in production.

Application Deployment Automation solutions, such as Urban Code Deploy, facilitate the process of deploying components to servers and releasing them into production.  Urban Code Deploy controls the process, versions deployment artifacts, keeps a record of who deployed what to where, and facilitates incremental deployments.

Strategic Technology: Release Coordination (UrbanCode Release)

This entry is part 29 of 33 in the series Strategic Technologies

Software development teams following an agile process to incrementally develop, build, deploy and release enterprise applications quickly find that keeping track of all of the components and inter-dependencies becomes unmanageable.  Spreadsheets become laborious to maintain and do not track the process and keep a record of who did what.

Release Coordination solutions such as UrbanCode Release help control and track incremental releases of complex enterprise applications.