of handling the domain evolution (Barstow and
Arango, 1991). The encapsulation concept in OO
provides us with a systematic way to handle
software evolution. System behaviours are
encapsulated inside the objects as methods. This
provides a means for software evolution to be
handled gracefully by delegating responsibilities to
objects. The ability to systematically handle
software evolution makes object orientation a
suitable technique for implementing web
applications.
However, the traditional object concept has a low
level of abstraction and has been designed for use by
software developers. On the contrary, business
objects are “business-focused” software objects
modelled to represent real world business entities
(Lhotka, 2003). They operate at a higher level of
abstraction than software objects. Business objects
offer representations of organisational concepts,
such as resources and actors, which collaborate with
one another in order to achieve business goals
(Caetano et al., 2005). Maamar and Sutherland
(2002) state that business objects provide “an insight
into what aspects of a business should be delegated,
how these aspects may evolve, and what will be the
effect of specific changes”, and through business
objects, “managers and users can understand each
other by using familiar concepts and creating a
common model for interactions”. Thus, an important
attribute that distinguishes business objects from
traditional software objects is the fact that they can
be understood by both business (business managers
and users) and software (software developers and the
software itself). They are considered as the bridge
between software developers and domain experts.
While object-orientation has been long proven
suitable for building business applications, existing
web development tools and frameworks do not
accommodate the need for high-level modelling and
rapid development of web-based business
applications. What is required instead are business
objects that make provision for web interfaces and
behaviours, we call those web-ready business
objects. Web-ready business objects should have
associated conventions such as:
• Providing a file upload facilities for documents
or other binary media contents
• Displaying URL as hypertext links, emails
addresses as mailto hypertext links
• Rendering calendars to assist user to enter date
information
• Offering the suitable media players for video
content.
In order to speed up the development of web-based
business applications, we need business objects that
incorporate those conventions. These conventions
are imperative directives that contribute to “web-
readiness” of business objects.
As a consequence, web-ready business objects
should embrace semantic-rich, web-oriented
attributes. These web-oriented attributes have high-
level, semantic-rich abstract data types (ADT) such
as: email, URL, image, video, document, and date.
These abstract data types require special validation
logic, content handling methods, and presentation
mechanisms. An image attribute for example, we
need to validate its filename appropriately, provide
an upload facility to record the image’s filename to
the database and store the actual image file to a
preconfigured location on the server (assuming that
we are not storing binary data inside the database),
and render the file content as image to the web
browser (via the
<img> tag if HTML is used). Web-
oriented attributes can affect different layers of a
web application. The benefit of being able to
program using abstract data types is well understood
in programming (see (Liskov and Zilles, 1974)).
Over decades, programmers have taken advantage of
language-provided, built-in data types, such as
“integer”, to perform normal operations, such as
arithmetic calculations, without worrying about the
underlying low-level instructions that are required to
be carried out by the machine. Similarly, in the
context of web applications, we need the direct
support for using richer and higher-level abstract
data types in order to represent web-oriented
attributes of business objects.
At present the responsibility of handling these
web-oriented richer data types is passed down to the
applications logic, based on primitive data types,
such as “string” or “text”. For example, an email
address attribute is not considered as type “email”,
but type “string” or “text”. As a consequence, web
developers need to craft the same regular expression
for validating the email address from users’ input
and customise the necessary web templates to render
the email attribute as an email hypertext link
(mailto) in every web application they build. This is
mainly due to the fact that “email” is not a built-in,
language-provided data type. The missing notion of
web-ready business objects does not only decelerate
web application developments, but also poses
impediments to business objects being modelled at a
higher level of abstraction. We cannot simply
model: “Employee has photo”, and expect a file
upload facility is provided for updating the photo
SMART BUSINESS OBJECT - A New Approach to Model Business Objects for Web Applications
31