brought to you by SnipSnap
[ start | index | login ]
start > 2009-11-06 > 1

2009-11-06 #1

Created by Dave. Last edited by Dave, 14 days ago. Viewed 20 times. #1
[edit] [rdf]
labels
attachments

Reasons not to 'Port'

I was asked to join in the writing of >>Migrating to Solaris OS (c) 2003 due to some of the projects I had worked in. We argued that there were four basic techniques available,
  • retirement,
  • emulation
  • source code engineering
  • reverse engineering
Retirement is fairly obvious, but its unusual that you can retire the whole of an application. Emulation ranges from black box language emulators such as BASIC or PICK, or more modern and comprehensive interpretive solutions such as a DBMS, web container or even a complete COTS package. This technique relies on the guarantees of the vendor/author, but is an excellent and cost effective method of migrating between operating systems and hence between hardware platforms and architectures. The latter two techniques can be used to migrate the business logic at higher levels of abstraction, between, say two database implementations or 4GLs.

In my experience there are two huge inhibitors from moving.

  • cost of labour intensive projects is high, particularly if using 3rd party people
  • and the code/business logic is insufficiently worth preserving.
If one starts with a blank piece of paper, the opportunity to increase the business alignment of the application, increase the functionality, and reduce the maintenance cost of the application outweighs the costs of a migration. Businesses choose to rewrite the application. It also often aligns with the personal and team goals of the applications development/maintenance teams. (They stay in work & get new toys and skills).

Over the 12 years I worked at Sun, I was involved in two software migration projects, both of them from one operating system to another using emulation techniques, one of which acted as the basis for >>Chapter 11 of the book. I also worked on proposing two reverse engineering projects from one database vendor to another, both of which were rejected on cost grounds. (The customers stayed with their then current technology vendors). This inertia will get worse as hardware capital and maintenance costs fall both relatively and absolutley. Potential savings in the cost of platform also decrease. N.B. To most large companies, the marginal cost of licensing a database is zero, and having a support contract with a multi-billion dollar company very attractive. This trends mean that the cost of the personell cost of software increases as a proportion of the total cost and re-writing for maintenance becomes more and more attractive, since the best savings come from long term improvements in software engineering productivity.

Icon-Comment Dave, 14 days ago. Icon-Permalink

I orginally expanded the description of the four techniques, but felt that it didn't belong in this blog article, but for those who want more, here it is.

Retirement is obvious, but its unusual that you can retire the whole of an application, however, some parts of an application might be migrated to new infrastructure components, and these days, more likely remote services, is this called re-factoring these days?. Printing is an obvious candidate, and the customer file a less obvious one, although most e-commerce applications should be using someone else's code to manage the customer file. (LDAP, Active Directory or even a web service.)

Emulation is more subtle, because it varies from black box emulation environments, which might be necessary to migrate language environments such as PICK, MUMPS, or RPG or even BASIC. A black box interpreter is provided and the code, business logic and data migrated, hopefully by copying. Emulation is also the name I apply to the migration of more modern modern interpretive environments such as a DBMS or even a COTS package. One relies on the porting guarantees of the vendor/author to ensure that the environment works on the new platform and then moves the code, business logic and data. This technique supports the porting of applications between operating systems.

The latter two techniques can be used to migrate the business logic at higher levels of abstraction, between, say two database implementations or 4GLs. For instance, there was a Wang PACE RE tool, that generated Powerbuilder/SQL code, it even continued to look like PACE screens. I suppose these two techniques are on a continuum and it depends on how many tools you use to conduct the work as to whether you consider it code engineering or reverse engineering. The latter usually involves a tool. Most of the database vendors have a tool for reverse engineering the database. The problem comes when one considers the proprietary usually procedural objects such as stored procedures, batch sql, or triggers, which is where people are needed.

You can also still buy the book, if you want :)
Please login to post a comment.
Subscribe using a feed reader.

Subscribe


short URL : >>http://is.gd/4L32o

Search my Site with Google

or use this site's >>top level tags, or the snipsnap-search tool.

Logged in Users: (1)
… and 3 Guests.



< November 2009 >
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
2930


XHTML 1.0 validated
CSS validated
RSS 2.0 validated
RSS Feed

Powered by SnipSnap 1.0b3-uttoxeter

Describe here what your SnipSnap is about!

Configure this box!

  1. Login in
  2. Click here: snipsnap-portlet-2
  3. Edit this box
snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt