AribaWeb framework

Importance of framework in enterprise software


One of the key principles in software development is the DRY principle, which stands for Don’t Repeat Yourself. It can also come in different versions like “plan ahead for reuse“. Now, enterprise software differs to other categories of software like computer games in a fundamental way: it is required to process large volume of business transactions data again and again and again and again. Clearly, there are a lot of parts inside enterprise software that can be reused.  Collection of reusable parts of software is called framework. It follows that a great framework can help a great deal in development and support of enterprise software.

So what parts of enterprise software get reused again and again?

  • User authorization management. In integrated enterprise software, people from multiple departments access the same software, but noone is supposed to be able to see everything. It follows that a robust authorization management system must be in place to cross check every attempt to access any data by any user
  • Programmers
    Photo by Matti Piiroinen

    Database abstraction. The better designed enterprise software can run on any number of Relational DataBase Management System (RDBMS), database-independence in software parlance, freeing the clients from vendor lock-in. It also provides the development team a central point of control of data structure structure, more efficient than manually synchronising it between the application and RDBMS.

  • Form generator. Form has to be generated following same principles for each one of the numerous data objects in the enterprise software. Clearly this is a boring and error-prone task. It’d be nice if the framework can automate this. Automatic form generator also provides automatic synchronisation between data types in RDBMS and on form, reducing time wasted on trouble-shooting such trivial mistake. The auto-generated forms also take care of mandatory/optional condition of each data field as well as on-the-fly data type validation, which reduce possibility of breach of data integrity
  • CRUD automation. Create, Read, Update, and Delete are basic data manipulation tasks that have to be attached to every single data objects in the software. Manually creating these will waste a lot of development team’s precious time
  • Report generator. An integrated report generator means that developers produce new kinds of report faster, and also give the client a central security control over who can see which reports. Purpose-built reporting software is not good enough here because the security is handled separately off the enterprise software
  • Photo by Flavio Takemoto

    Data import/export. No matter how integrated an enterprise software is, from time to time, it will need to pull data from or push data to other software.

  • Document numbering system. There are lots of documents to be recorded in enterprise software: Purchase Orders, Sales Orders, packing slips, invoices, receipts, journal vouchers, etc, etc. All these documents need to be numbered in systematic way, not just assign 1-2-3 to all document types
  • Concurrency control. What happens if 2 purchasing staffs edit the exact same Purchase Order, 1 changing the delivery address and the other changing the quantity? Surely, if the software allows this, chaos would ensue. A good framework provides means to prevent this, probably by way of application-level locking
  • Integrated Development Environment (IDE). A well set up IDE can make developers more productive by automating routine tasks like syntax checking, debugging, submission to version control system, or re-compilation
  • Application Programming Interface (API). Since it is impossible to handle all aspects of business operation just using single software, it is essential that the framework provides easy 2-way integration with other software
  • Other features like developer management system (which developer can change which code), patch management system (install/uninstall, dependency check), or even printer management system (enabling remote printing feature)
AribaWeb framework
With good framework like AribaWeb, even Assistant Vice President of IT can create this complicated application in just few hours
Advertisements

4 thoughts on “Importance of framework in enterprise software”

    1. I’ve only explored AribaWeb for few days, but as far as I know, it doesn’t have one. In fact it doesn’t seem to have few other features mentioned above like document numbering system and application-level locking. But it is the open source enterprise s/w framework which ticks the most boxes (i.e. have most of the required features). Of course, the commercial frameworks I know, like BaanERP’s, have all the features mentioned above, but they’re not free

      Like

  1. It’s a neglected project left by it’s founder. Don’t even bother to continue exploring it. Try epxloring GWT instead let’s share what you’ll find.

    Like

    1. This blog entry is not about AribaWeb. It’s about the importance of good framework in creating enterprise software. Not web site, not computer game, not office application, but enterprise software: software used to process large volume of business transactions inside for-profit companies. Having worked extensively with framework of top 5 ERPs, I can tell that

      • general-purpose programming have little use in enterprise software
      • AribaWeb, despite being successful enterprise software provider itself, still lacks some key features. Having said that, for open source alternatives, AribaWeb comes the closest

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s