Tuesday, July 12, 2011

Technical Aims and Approaches

Issues for Technology in Business

Common technical issues that arise in relation to software systems (beyond meeting functional requirements) are:
  • Reuse - avoiding repeating work
  • Reliability - having results that are accurate (eg. correct reports, correct customer information).
  • Availability – systems being available when required (controlled down time)
  • Scalability – the system's ability to cope with increases in workload (eg: large rise in customer base and therefore transactions).
  • Performance – system response is timely.
  • Agility - the system is adaptable to changes in the business and its environment.
Apart from supporting the day-to-day transaction and decision requirements of organisations, there is a need for IT systems to support Agile Information Organisations. Awazu and Desouza (2005) argue that organisations should:
  1. Sense signals in the environment
  2. Process them adequately
  3. Mobilize resources and processes to take advantage of opportunities
  4. Continuously learn and improve operations

Approaches to the Issues

There are a variety of solutions to the technical issues and problems identified above. Some of these, which we will be looking at, are:
  • Application servers and middleware.
  • Web-services.
  • Services Oriented Architecture (SOA).
  • Outsourcing
  • Proprietry solutions (eg. SAP)
All these approaches conceptually consist of three layers representing differentaspects of the system. These layers are: The presentation layer which is responsible for the user interface; the application layer which represents the business rules; and the data layer which represents the database system storing and retrieving information. These are shown in the following diagram:



Traditionally in large organisations the three layers were primarily implemented on a single centralised mainframe or mini computer system as shown in the next diagram:


However, more modern systems tend to use multiple computers and spread the tasks across them. For example, a web system would take adavantage of the user's computer and browser software to take care of much of the presentation of the application (the user interface (although the code sent to the browser is still constructed on the server computer ) with maybe many smaller computers being used to run business rules and database systems, for example as follows:


In these cases the software on the middle layer is called middleware, which is often implemented based around an application server.

Application Servers

Application servers provide an infrastructure for building systems that attempts to address the problems of: reuse, reliability, availability, scalability, performance and agility. This type of approach has become popular for rapidly growing internet businesses as well as for existing businesses expanding services for e-Commerce. An application server is basically like an operating system for a business. Just as Windows is an operating system for a personal desktop. Windows supports all sorts of personal applications such as word processors, music players, web-browers etc. An application server supports all sorts of business applications like: sales, accounts receivable, logistics, customer relationship management, etc.

All business applications have a core component which is the business rules it is implementing and enforcing. On one side of this core is the data that is been processed by the rules (usually provided by a database system) and on the other side is the user's view of the application. These three abstract components of an application are called the data layer, the business rules or logic and the presentation layer. Two common operating systems for supporting business applications are the Java Enterprise Edition (JEE) and Microsoft's .NET framework. For each of the three abstract components of a business system JEE provides a container (sub-system of the businesss operating system) to house the relevant aspect of the application.

These are as follows:

For the presentation layer: Web-container along with the Client Application Container

For the application layer (business rules): Enterprise Java Bean Container (Java Beans are the programming elements that business applications are constructed from.

For the data layer: Application server with Java Bean Container (to connect to database systems)
An application server architecture may look something like the following:



In this case, Tier 2 is the middleware layer and the business applications are the oblongs which are constructed from programming objects. Both Tier 2 and Tier 3 may consist of many computers with the work being automatically spread across these machines by the application server software. The resulting logical and physical organisation of the system looks something like the following:



Web Services

Traditionally the web has been built up from HTML documents which referenced each other. Traversing links, downloading files and initiating purchases and on-line transactions has been done manually by a user through a browser (typically anyway - there are also many web-crawlers, softbots, etc operating over the web). Web-services moves the model from end-users initiating transactions to having programs initiate transactions on the user's behalf. Services can be described, published, discovered and utilised dynamically. This allows auctions, marketplaces and intelligent agents to exploit these new features.

Business functions can be published on the web, and are accessible universally so clients can invoke methods on objects remotely through the web. The services available are maintained in a directory and can be looked up and accessed using standard description languages and protocols - often automatically by software. Web-services are a combination of the web with distributed components (also called objects) and XML (eXtensible Markup Language) technologies.

Web services are organised using directories (similar to telephone books) as follows:
  • White pages - Provides info about a service provider
    • business name
    • text description
    • contact info
    • identifiers - tax number, etc.
  • Yellow Pages - Business categories:
    • Industry - US gov . industry codes
    • Products/services - ECMA
    • Location - Geographical taxonomy
    • Implemented as name/value pairs.
  • Green Pages - Describes how to do e-business with companies
    • Provides business processes, service descriptions, binding info.
    • Platform independent
    • Services are categorized

Services Oriented Architecture (SOA)

Components in application servers can fairly easily be exposed as web-services. This allows 2 types of reuse:
  1. Internal to the business.
  2. External services for others to use with an arranged fee systems.
Some organisations may specialise in providing web-services for others to use, for example, credit card payment processing. Touted benefits of SOA include:
  • Faster time to market – pull together existing services as components in some new service enterprise.
  • Lower cost – as services are used by multiple clients, rather than just a single developing organisation, the costs can be spread over all users.
  • Supports agility – new services can be quickly created or adapted based on existing service components.
Possible problems with building systems using SOA are (Craggs, 2007):
  • Finding services which do exactly what is needed.
  • Overheads in using XML as a data format rather than more efficient custom formats. Poorly prepared business cases which do not get management support and therefore are not given adequate budgets.
An example of SOAs is provided by Kevin Clugage, Product Director for Oracle Fusion Middleware (paraphrased):
An example is a European leasing company with multiple lines of businesses for different types of leasing assets, each one supported by different legacy systems. The disparate back end systems created a lot of inconsistencies and process delays for their customer service representatives who were managing multiple order-to-quote processes for the same customers across these different lines of businesses. They were able to rapidly build a composite application on top of those systems that enabled their customer service reps to process orders for each individual line of business through one consistent interface. A typically implementation time for this type of systems could be one to two years, but by leveraging their existing systems to build a composite application, this company was able to complete the project in only six months.

Outsourcing and Proprietry Solutions

Outsourcing includes Application Service Providers (ASPs), such as web-service providers. Ideally, services provided should be as reliable as utilities such as an electricity or water supply. These has lead to the term utility computing. In practice, there are risks with outsourcing and using 3rd party software. Some of these risks are:
  • Shirking - vendor bills for more work than provided, replaces highly qualified staff with lesser qualified staff.
  • Poaching – vender develops a strategic application for one client then uses it for others.
  • Opportunistic repricing – client enters into a long-term contract then vendor increases prices or charges for unexpected extras.
  • Loss of business knowledge – vendor gains knowledge about your business making you more dependent.
  • Scope creep – the work they are doing and charging for starts to extend beyond what was originally intended.
Some options to reduce the risks of outsouring include:
  • Short –term contracts may allow companies to adapt to changing environments.
  • Only contract out select services.
  • Align payments to ASPs to measurable performance.
  • Divide large projects into smaller pieces to reduce risks.
Despite the risks, outsourcing may offer benefits to organisations that lack the skills or expertise to develop their own in-house solutions for specialised problems. Another problem with outsourcing to provider who provides the same service to all customers is that this reduces the opportunities for an organisation to customise its operations and services and thus differentiate itself in the market place. This problem also arises when using common business packages or solutions such as offered by organisations like SAP. It may be best to outsource or buy existing solutions to problems that are not core to your business while developing your core business applications in-house either with employed staff or contracted development organisation such as ThoughtWorks.

References

Awazu, Y. and Desouza, K.C. 2005. Designing Agile Information Organisations: Information, Knowledge, Work , Technology. Available form: http://ifipwg82.org/Oasis2005/Awazu%20and%20Desouza.pdf
Craggs, S.T. 2007. SOA is Rubbish. Integration Consortium. Available from: http://www.btquarterly.com/?page=Application-Infrastructure
Kroenke, D.K. 2008. Experiencing MIS. Pearson. Chapter Extension 20.
Matena, V. et al. 2003. Applying Enterprise JavaBeans: Component Based Development for the J2EE Platform. 2nd Edition. Addison-Wesley.
Turban et al, 2007. Information Technology for Management: Transforming Organisations for the Digital Economy. Wiley. Chapter 14.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home