DCUBS MECB middleware in Web 2.0 Project 2012

36
E-Commerce Infrastructure: Middleware in Web 2.0 19 th April 2012 CA668A Deirdre Connolly 11212127 Grainne Malone 55149774 Jennifer Murphy 52595354 James Dellinger 11219889

description

A project looking at the uses of middleware in bringing web 2.0 technologies to end users. Imperfect resource on middleware in readable english NOT German. A project looking at the uses of middleware in bringing web 2.0 technologies to end users. This paper discusses the continued use of various middlewares in the Web 2.0 infrastructure environment. It will discuss and apply knowledge of the theories behind many of the six forms of middleware identified by middleware.org as they pertain to the operations and infrastructure of forms of Web 2.0 browser based applications. We will look at the role of CORBA and a bit at the history of why middleware has been essential. This paper will discuss AJAX and the use of XML and JSON IDLs and some of their pros and cons for use and how the these two IDLs might be used in a start-up website/mobile application development scenario.

Transcript of DCUBS MECB middleware in Web 2.0 Project 2012

Page 1: DCUBS MECB middleware in Web 2.0 Project 2012

E-Commerce Infrastructure: Middleware in Web 2.0 19th April 2012

CA668A

Deirdre Connolly 11212127 Grainne Malone 55149774 Jennifer Murphy 52595354 James Dellinger 11219889

Page 2: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 1

Declaration

In submitting this project, I declare that the project material, which I now submit, is my own work. Any assistance received by way of borrowing from the work of others has been cited and acknowledged within the work. I make this declaration in the knowledge that a breach of the rules pertaining to project submission may carry serious consequences.

Page 3: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 2

Table of Contents

Introduction and Objectives .................................................................................................. 4

What is Middleware ........................................................................................................... 5

Objectives ............................................................................................................................. 6

Principles of Middleware ....................................................................................................... 7

Layered Architecture .......................................................................................................... 7

Advantages of Middleware ............................................................................................... 7

Principles of Distributed Object Technology .................................................................. 8

Encapsulation ...................................................................................................................... 9

Polymorphism ..................................................................................................................... 9

Language Independence .................................................................................................... 9

Component Software .......................................................................................................... 9

Common Object Request Broker Architecture ................................................................... 9

CORBA ORB Architecture ............................................................................................... 10

IDL Interface Definition Language ................................................................................. 10

CORBA Implementations ................................................................................................ 11

Principles and Architecture of a Web-Based Middleware Platform ............................. 12

Concept ............................................................................................................................... 12

Interface Definition Language ......................................................................................... 14

JavaScript Object Notation (JSON) ................................................................................. 14

Protocols ............................................................................................................................. 15

Common Services .............................................................................................................. 16

Software in a Wide-area Environment ............................................................................... 16

Web 2.0 ............................................................................................................................... 17

The Characteristics of Web 2.0 ........................................................................................ 18

Important Technology and Services of Web 2.0 ........................................................... 19

Wikis ................................................................................................................................... 22

Really Simple Syndication (RSS) ..................................................................................... 23

Blogs .................................................................................................................................... 23

Folksonomy and Social Bookmarking ........................................................................... 24

Semantic Web .................................................................................................................... 25

Software Development using Web-Based Middleware .................................................. 26

What are the development activities involved? ........................................................... 29

Page 4: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 3

Conclusion ............................................................................................................................. 31

References .............................................................................................................................. 32

Page 5: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 4

Introduction and Objectives

The concept of middleware started to gain momentum in the 1990s as an integration

and interoperability solution for applications running on heterogeneous computing

and communications devices (Mahmoud, 2005). Today more than ever, due to the

exponential growth of web based technologies, middleware is an essential service for

almost any type of distributed computing environment and networked application.

A distributed system, also known as heterogeneous systems, is a collection of

computers linked via some network (Pahl, 2012).

In this paper we will discus the continued use of various middlewares in the Web 2.0

infrastructure environment. We will discuss and apply knowledge of the theories

behind many of the six forms of middleware identified by middleware.org as they

pertain to the operations and infrastructure of forms of Web 2.0 browswer based

applications. We will look at the role of CORBA and a bit at the history of why

middleware has been essential. This paper will discuss AJAX and the use of XML

and JSON IDLs and some of their pros and cons for use and how the these two IDLs

might be used in a start-up website/mobile application development senario.

Contrarary to opinions, like Lori MacVittie, Web 2.0 has not killed the middleware

star (Highscalability, 2011). AJAX and the RESTful web environment has reduced

the need for some forms of middleware the web was reliant upon in the previous so-

called Web 1.0 environment. They are however, now more embbeded into

applications or deep into platforms (Google Protocols, Facebook Trhift, for example)

or buried deep in cloud platforms to manage server loads. We will explore classic

examples that are still with us like XML-RPC and its core role in Pub/Sub for

blogging platforms like Wordpress and why Facebook needed to develop its Thrift

(now an Apache open source project) middleware to solve a classic problem start-

ups running on a LAMP stack, that of scaling mySQL massively. We will discuss

why middlewares utilizing OAUTH and to a lesser degree FacebookConnect are a

newer form of evolved middleware.

Page 6: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 5

What is Middleware

The objective of Middleware is to ease the task of designing, programming and

managing distributed applications by providing a simple, consistent and integrated

distributed programming environment. Essentially, Middleware is a distributed

software layer, or ‘platform’ which supports the underlying distributed environment

with it’s multitude of network technologies, machine architectures, operating

systems and programming languages (itdiscover.com 2012) One of the most popular

models is object based Middleware in which applications are structured into objects

that interact with each other, irrespective of where those applications reside. A

classical form of a distributed system is a client server system.

The goal of middleware solutions is to allow disparate systems or applications to

talk to each other and exchange information without having to rewrite the

individual applications or modify the underlying infrastructure. It provides a well-

defined, functional framework that is an essential component for almost any

networked application. (Al-Jaroodi, 2010).

What are the types of middleware? Defined by middleware.org:

1. Asynchronous Remote Procedure Calls (RPC) - client makes calls to procedures

running on remote computers but does not wait for a response. If connection is lost,

client must re-establish the connection and send request again. High scalability but

low recovery, largely replaced by type 2

2. Synchronous RPC – distributed program using this may call services available on

different computers – makes it possible to achieve this without undertaking detailed

coding (e.g. RMI in Java)

3. Publish/Subscribe – often called push technology, here server monitors activity and

sends information to client when available. It is asynchronous, the clients

(subscribers) perform other activities between notifications from the server. Useful for

monitoring situations where actions need to be taken when particular events occur.

Page 7: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 6

4. Message-Oriented Middleware (MOM) – asynchronous – sends messages that are

collected and stored until they are acted upon, while the client continues with other

processing.

5. Object Request Broker (ORB) - object-oriented management of communications

between clients and servers. ORB tracks the location of each object and routes

requests to each object.

6. SQL-oriented Data Access - middleware between applications and database servers.

Has the capability to translate generic SQL into the SQL specific to the database

(From middleware.org, 2008)

Objectives

The core objective of middleware is to support the design and development of

distributed applications in networked environments by providing full integration,

interoperability and communication services across all layers of the software

architecture (Al-Jaroodi, 2010). So, it’s a layer of services. In effect, it’s the

infrastructure software that makes systems integration easier, more efficient and

reduces the incidence of errors (Jacobsen, 2007).

Conceptually middleware is often thought of as the "glue" between software

components or between software and the network. It is the middle layer of services

that acts as a Common Gateway Interface (CGI) between a client (browser) on the

front end and a database on the back end. In other words, it’s the interface that glues

independent systems together and makes them communicate and work well

together. It’s also referred to as the ‘plumbing’, the central pipe that translates and

facilitates communication between software components.

The key objectives of middleware can be summarized as follows

• Application portability

• Transparency - Middleware operates in the background and so it is

transparent to users and programmers. It allows for transparent invocation of

remote and distributed objects (applications) irrespective of location.

Page 8: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 7

• Interoperability between distributed application components - Objects

implemented on any computer, operating system, or network in different

languages and on different platforms can interoperate.

• Facilitates software component integration.

• Makes the distribution system more programmable and manageable

• Offers more flexibility and choice in terms of application development

Principles of Middleware

Layered Architecture

Conceptually, Internet architecture can be characterized as a modular structure

containing the following layers

• At the lower level is the Network technology substrate composed of

telecommunications networks and protocols.

• The transport services and standards layer houses the TCP/IP protocol.

• The applications layer contains client applications such as the World Wide

Web, email, interactive education, audio, video and social media applications.

• The Middleware Services layer is the glue that binds the applications to the

communications networks. It includes services such as security,

authentication, addresses, storage repositories, electronic money and

multimedia coordination. (Laudon and Traver, 2010).

Conceptually, the "middleware layer" consists of a layer below the application and

above the operating system and network layer.

Advantages of Middleware

One of the core benefits is that it provides a unified horizontal architecture that

connects the vertical silos of legacy or distributed systems (Feld and Stoddard, 2004)

Because all layers use the TCP/IP communications layer, changes can be made in the

network layer without forcing changes in the applications layer and vice versa.

Middleware hides most of the details of distribution from application designers

thereby freeing up developer’s time.

Page 9: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 8

According to a framework described by Mascolo et al, (2005) middleware takes care

of

• Fault tolerance – the ability to recover from errors without halting the entire

system. Errors occur because of software or hardware failures. Middleware

guarantees the continuation of operations even if one component in the

system fails.

• Heterogeneity of hardware and software components written using different

programming languages, running on different operating systems, executing

on different hardware platforms

• Scalability – the ability to accommodate an increasing number of users,

services and hosts.

• Openness to change and modularity so that new components can be easily

integrated without disturbing the existing system.

• Resource sharing and access control.

Middleware services offers greater flexibility, it’s open source and vendor

independent.

Principles of Distributed Object Technology

Common middleware platforms include CORBA, Microsoft’s Distributed COM, and

Java RMI.

These are object-based models in which applications are structured into objects that

interact with each other. Object- oriented software development is based on the idea

that

• Objects can reside on any computer in a networked system

• Other programs can invoke operations by sending messages to the

application or computer that hosts these objects

• Ideally these programs will not be able to distinguish between local and

remote objects (Pahl, 2012)

Object based Middleware is based on the following object oriented principles

Page 10: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 9

Encapsulation

Encapsulation can be described as a protective barrier that prevents program code

and data from being randomly accessed by other code, defined outside the class.

Access to the data and code is tightly controlled by an interface. For this reason,

encapsulation is often referred to as data hiding. The main benefit of encapsulation

is that it gives maintainability, flexibility, reusability and extensibility to our code.

Polymorphism

In object oriented programming (OOP) polymorphism refers to the ability to create

objects in multiple forms. It means that there can be multiple implementations of an

object, which supports the principle of reusability. It is based on the concept of

inheritance and class hierarchy in OOP (Anderson & Franceschi, 2012).

Language Independence

Language bindings in Corba enable soft ware components written in different

programming languages to work with each other. In other words, it provides a

mapping or translation service that supports multiple computer languages. Corba’s

IDL specifies the language bindings. Essentially it means that objects written in one

language can be implemented or mapped to different programming languages. We

will look at this later in the section on IDL.

Component Software

Component Software is software that’s developed in self-contained units that can

interact with other components to form a functioning system. Component based

software supports modular structures that offer benefits such as adaptability,

scalability and maintainability. It enables reuse of software parts thereby extending

the use and investment in individual units or parts (Szyperski et al, 2002)

Common Object Request Broker Architecture

CORBA is a specification produced by the Object Management Group (OMG) that

addresses interoperability standards in distributed environments. A classic example

Page 11: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 10

of a distributed system is a client/server system. CORBA is an open standard that

represents industry consensus from more than 800 companies. Open standards are

by their nature platform independent, collaboratively developed, vendor neutral,

and do not depend on any commercial Intellectual property. (Jacobsen, 2007)

CORBA ORB Architecture

The ORB (Object Request Broker) is the mechanism for communicating client

requests to remote target objects. It can be conceptualized as a communication bus

between client and server objects. Interfaces must be specified in the CORBA

standard Interface Definition Language (IDL).

IDL Interface Definition Language

IDL is comprised of stubs on the client side and skeletons on the server side.

The IDL interface describes the object’s functionality and how a potential client can

invoke a method of the object, even if the object is not written in the same language

as the client object. In effect, IDL acts as a programming language translator by

taking an IDL description of an object and translating it into a specific set of

language bindings (Pahl, 2012).

An IDL interface description is then mapped using an IDL compiler to native

languages such as Java, C, C++ and others. This allows each programmer to write

source code independently in the most suitable language. For example, a server

object implemented in C++ can be accessed by a Java applet. The applet

programmer invokes methods on the server as though they are local Java method

calls (Schmidt, 2006).

A client can connect to a server object statically if the server interface is known at

build time or the client can use dynamic binding to ascertain the server interface and

construct a call to the server (Scallan, 2012).

Page 12: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 11

(Source: Schmidt, 2006)

CORBA Implementations

Middleware systems such as CORBA implementations have been successful for

organizations to create interoperability involving current and legacy systems.

CORBA is useful because of the easy way that it integrates components from so

many vendors. It’s widely used in large enterprises. One of the most important uses

is in servers that handle a large number of clients, at heavy hit rates, with high

reliability (Object Management Group, 2012).

Page 13: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 12

Principles and Architecture of a Web-Based

Middleware Platform

Based on these objectives, develop ideas and concepts for a Web-based middleware

platform. In particular address the following: interface definition languages,

protocols, common services and facilities, development of software in a wide-area

environment.

Concept

With the social networks being a dominant form of communication, a high

percentage of our communication from both social and work life is conducted

online. Currently there is no almighty platform which incorporates both whilst at the

same time separating one’s personal life and professional persona. Currently,

Facebook is seen to manage one’s personal life and LinkedIn to maintain a career

and business life persona. The implications are that people are using many different

social networking platforms, usually with a crossover in people. Friends could by

followed on Twitter, “friended” on Facebook, connected on LinkedIn, circled in

Google + and add as chat contact on Gmail.

The concept is to have a web-based middleware platform is a web service to

integrate and manage contacts from multiple web-based email accounts, web-based

social networks, and mobile devices. Having disparate contacts in 8+ places different

web accounts is not an uncommon problem with the shift to cloud based social

media and email services. With all the different social network platforms, one is

likely to have a high volume of contacts, many duplicate but more importantly most

incomplete. Each of these platforms collects different types information about the

person, and an aggregator can compile this all and at the same time eliminate

duplicates.

Page 14: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 13

Below is an example of the information that could be compiled on a person, which is

connected with across all platforms.

Michelle O’Reilly Contact

Personal Email [email protected]

Work [email protected]

Personal Mobile Number 083 3390055

Work Number(s) 016437869

0862926564

LinkedIn URL www.linkedin.com/moreilly

Facebook URL www.facebook.com/moreilly

Twitter Handle @michelleoreilly

This would be a service for users working outside the environment of

comprehensive paid CRM like Salesforce of Microsoft Dynamics. The functionality

of this contact aggregation service goes beyond the initial ‘sync’ of contact

information, the tool would be constantly scanning a user’s networks to search for

new additions or updates, moreover a user can add new networks and sync the new

contact information. Additional functionality would include a manual edit function

to add new fields, for example blog address, current city etc.

This is a two way service and the user would have the option to synchronise the new

contact information back to their email client or to their mobile device. The

synchronisation could be set to manual or automatic.

Page 15: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 14

This is the functionality of the service however the focus of this report is on the web-

based middleware aspect. Although, this is not the focus it is important to lay out

the functions the service provides to understand the choices made for the supporting

technologies.

Interface Definition Language

As discussed in the introduction, the purpose of an interface definition language is

to define the capabilities of a distributed service along with a common set of data

types for interacting with those distributed services. (Arnold, 2008) It is used because

it meets four key objectives as listed below (Arnold, 2008);

1. Language Independence:

2. Distributed service specification:

3. Definition of complex data types:

4. Hardware Independence

JavaScript Object Notation (JSON)

The IDL chosen for this conceptual web-based middleware is JSON. JSON is fast

becoming the IDL of choice and the preferred alternative to XML due its suitability

for mobile devices. It is described as the ‘The Fat-Free Alternative to XML’ on the

JSON website, JSON promises the same benefits of interoperability and openness,

but without the disadvantages. XML is not well suited to data-interchange, whereas

JSON is described as a lightweight text-data interchange format, it is this attribute

that makes it suitable for our conceptual design as the primary exchange is text

based.

As with all Interface Design Languages, JSON is language and platform

independent. Like XML it is "self-describing" and hence human readable. It uses

JavaScript syntax for describing data objects. JSON parsers and JSON libraries exists

for many different programming languages. (W3C, n.d)

Page 16: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 15

Protocols

Our conceptual web-based middleware is centred on multiple social networks and

extracting data from the same. Therefore, the protocol needs to have the capability of

authorising the service to pull data from the users social networks account. A

protocol named OAuth was chosen as apart from its widespread use and popularity

it is fit for this purpose.

OAuth allows for access to be gained to resources stored on a server, the case of our

concept these ‘resources’ would be the users contact-information, this can be done

by clients, on the behalf of the end-user. OAuth also allows for authorisation by end-

users to be provided for third parties to access their servers. This can be done

without the third party being required to provide a password and username etc.

The resource owner needs to grant permission to facilitate the client gaining access

to server resources there is an inherent security aspect to this protocol which has led

it to be almost the de facto standard for type of process. The access is managed by a

token such a way to allow for a matching ‘shared-secret’ (OAuth, n.d) etc. thus

avoiding the necessity of the resource owner being required to share privileged

information with the client. The token is used to ensure the users credentials are not

shared with the client. Unlike the resource owner credentials, tokens can be issued

with a restricted scope and limited lifetime, and revoked independently (OAuth,

n.d)

The OAuth specification is split into two distinct components. The first component

outlines a redirection-based user-agent process for end-users to authorize client

access to their resources. This is achieved through direct authentication with the

server and provisioning tokens to the client for use with the authentication method

(OAuth, n.d). The second component of the specification outlines a method for

making ‘authenticated HTTP requests using two sets of credentials, one identifying the

Page 17: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 16

client making the request, and a second identifying the resource owner on whose behalf the

request is being made’ (OAuth, n.d)

Common Services Common services required by this conceptual web based middleware platform

would be similar to those offered by any object based middleware platform. Key

services remain naming, and security. Lets review them.

Naming

A standardised intuitive naming convention across the platform essential as the data

requires sorting on the client side in our conceptual service.

Externalization

This is required to coordinate the transformation of objects to and from external

media as the service could potentially offer exchange non-text based content.

Communication

Communication protocol between objects is an essential service to maintain clarity

Property

Supports the association of name-value pairs with objects

Security

Distributed systems operate over open networks; authentication, privacy and

integrity are important

Software in a Wide-area Environment

• Base your ideas and concepts on research into Web technologies. Select and

discuss those Web technologies that you deem important for future Web-based

Page 18: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 17

software development and deployment (in particular Web Services and the

Semantic Web, but also others you find relevant).

As mentioned this would be a service for users working outside the environment of

comprehensive paid CRM like SalesForce of Microsoft Dynamics. It would have a

wide scope of potential applications and would have mass-market appeal and

commercialisation prospects.

This web-based middleware concept could easily be utilised for other applications

scenarios. For example, for people signing up for a new social network platform, this

middleware could be used to find contacts that are already part of that network and

automatically connect and update any missing data. Moreover, the data exchange

does not have to be limited to text data, media could be exchange between multiple

platforms, for example an automatic export function between a user’s YouTube and

Facebook account.

These examples encapsulate the fundamental function of this conceptual web based

middleware platform- Easy exchange, synchronisation and export of data across

multiple social network platforms.

Web 2.0

Advanced Internet technology and the associated applications is what is known as

Web 2.0. These applications include blogs, wikis, podcasting, RSS, social networks

and mashups. A significant difference between Web 2.0 and the traditional web is

that of user-generated content with increased collaboration among Internet users.

Web 2.0 is an umbrella term for emerging trends, principles and a core of

technologies that is changing what is on the Web and how the Web actually

operates. Organisations that understand these new technologies and applications

whilst utilising the benefits at an early stage, have the possibility of greatly

improving internal business processes and supply chains. One of the most beneficial

Page 19: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 18

advantages is that of improved collaboration with customers, supplier’s internal

users and partners (Lae and Turban, 2008, p.388).

The Characteristics of Web 2.0

• Self-publishing, user-created content (Lae and Turban, 2008, p.388-389).

• Ability to utilise and tap into the collective intelligence of the users. The more

users who contribute, the more valuable and popular a Web 2.0 site becomes.

• A unique collaborative and communication environment for users.

• Data can be made available in new or unintended ways. Web 2.0 data can be

“mashed up” or remixed, which is often through Web-service interfaces.

• Lightweight programming tools and techniques, which allow many more

users act as developers, for example blogs, wikis, podcasting and RSS.

• RSS various protocols is a pub/sub form of middleware

• The virtual elimination of software-upgrade cycles that makes everything a

perpetual work-in-progress or beta and allowing rapid prototyping utilising

the Web as a platform.

• The unique sharing of all media or content.

• Networks as platforms that deliver and allow the users to use applications

entirely through a web browser.

• An open source architecture making connectivity to computing resources

straightforward.

• The users own the data on the web site and they exercise control over that

data.

• An architecture of digital democracy and participation encourages the users

to add value to the application as they utilise it.

• The creation of new business models according to Chesbrough (2006 cited in

Lae and Turban, 2008, p.389).

• Social networks have a significant emphasis.

• A user-friendly and rich interactive interface that is based on Ajax

(Asynchronous JavaScript and XML) or on similar frameworks. Ajax is a web

Page 20: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 19

development technique utilised for the creation of interactive web

applications.

• To quote: “HTTP as the underlying protocol layer of XML as the metalanguage in

which all other languages and formats will be defined This basic layer corresponds to

CORBA IDL plus RPC (Remote Procedure Call).” (Pahl, 2012)

• Increased productive organisation communication with for example,

improved search, user authority and links according to McAfee (2006 cited in

Lae and Turban, 2008, p.389).

(Lae and Turban, 2008, p.388-389).

• OAuth has enabled seamless web experiences for users where they can

flow data across websites without having to share their passwords

(O’Reilly Media, Inc. and UMB TechWeb, 2010).

• To Quote: “Representational State Transfer and RESTful Web services rely on

HTTP benefit: more lightweight as they can avoid SOAP-based overheads

disadvantage: no formally specified interface (as in WSDL) one-to-one mapping

between create, read, update, and delete (CRUD) operations and HTTP methods.”

(Pahl, 2012)

Important Technology and Services of Web 2.0

A key driver of Web 2.0 development has been the emergence of a new generation of

web- related standards and technologies. The delivery of Web 2.0 services and

applications has been driven by the widespread adoption of the group of

technologies known as Ajax. For users of the traditional HTML-based websites the

low dynamism has frustrated users. With the introduction of Ajax success has

emerged. Utilising this technology, a portion of a web page can be dynamically

reloaded in real-time creating an impression of more natural and richer applications

with responsive interfaces (Anderson, 2007, p.27-p.28).

Page 21: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 20

The Ajax technologies include HTML/XHTML which are a standards based method

of presenting information within a browser. CSS is also utilised and Document

Object Model (DOM) a method to dynamically control the document. XML and

XSLT are utilised for data manipulation and interchange. XMLHttpRequest is used

for asynchronous data retrieval from the server, also used is JavaScript or ECMA

script (Ibid).

The most important of the alternatives to Ajax utilise Flash, the ubiquitous graphics

plug-in from Adobe, which allows sophisticated and quick-to-download vector

graphics and animation to display in the browser window (Anderson, 2007, p.28).

There are also several emerging technologies focusing on displaying rich graphics in

the browser window such as Microsoft’s XBAP and Mozilla’s XUL (Anderson, 2007,

p.29).

Developers use 3 principle approaches to create Web 2.0 applications, which are

AJAX, Flex and Google Web Toolkit. With AJAX-style programming, web pages are

increasingly responsive as small amounts of data are exchanged with the server and

the entire web page doesn’t require reloading each time a change is requested from

the user. An AJAX application eliminates the start-stop-start-stop interactions by the

introduction of an AJAX engine between the server and user. This renders the user

interface and communicates with the server for the user. The web page is more

interactive, faster and more usable enabling the easier deployment of rich-client Web

applications (Murugesan, 2007, p.38)

Adobe Flex is an application development solution used for the creation of delivery

of cross-platform rich Internet applications (RIAs) on the web. Flex is based on Flash

and it provides a standards-based language and a programming model supporting

common design patterns. Flex provides a more productive development

environment that is Eclipse-based, it dramatically improves the performance of the

application, supports applications requiring real-time data push and provides more

control over the application’s look and feel. (Ibid).

Page 22: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 21

Google Web Toolkit (GWT) is an open-source Java development framework making

it straightforward to develop and debug AJAX applications. GWT allows developers

create applications in Java using the Java development tools they choose. Its

compiler translates the Java application to browser-compliant JavaScript and HTML

to deploy. Widgets are also provided by the toolkit for construction of the user

interface elements that comprise an AJAX application. Using GWT users are offered

a dynamic and standards-compliant experience (Ibid).

(Andriole, 2010, p.71).

WebMail Access to email via an email broswer can be taken for granted. However, many of

the webmail services must utilize middleware. The Simple Object Access Protocol

(SOAP) is a protocol specification that defines a very uniform manner of passing

XML-encoded data. It also defines a way remote procedure calls (RPC) using HTTP

are made as the underlying communications protocol. It can perform as a wrapper

for wider environments and other middleware implementations. (Pahl, 2012) SOAP

supports two kinds of messages: both Calls and Responses. This works well for

Page 23: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 22

email. An example would be open sourced Zimbra webmail. Other webmails use

different middlewares some propritory and others open sourced.

Wikis

A wiki is a simple, however powerful web-based content management or

collaborative-authoring system for the creation and editing of content. Any user is

able to add a new article or revise an existing article via the web browser. Users can

also track any changes made to the article. Features of wikis include a wiki mark-up

language called wikitext providing a short way to format text and link external

documents and contents. New pages can be created by the contributors and easily

linked and as the hierarchy and structure of the blog site is flat, navigation is simple.

There is a consistent look to all the pages in a wiki as when a page of wikitext is

requested the wiki software converts the wiki markup into HTML and creates links

to pages, wrapping this converted content in a template providing a consistent look

to all pages. Hyperlinks to pages in the wiki are automatically created with wiki

software creating links based on page title. It is possible to write or edit and publish

without editorial approval or oversight.

The content in a wiki is managed via change monitoring and the ability of the wiki

to roll back to a previous version preventing spam. User access and privileges can

also be controlled. Searching for specific information or a topic within a wiki is

possible using associated keywords. Wikis offer asynchronous contribution by a

number of users, for example experts or employees who may be situated in different

countries. They also offer an excellent means to annotate information or to engage in

discussion on evolving topics. There is a higher communication efficiency and

productivity using wikis as opposed to exchanging e-mails. Wikis offer support to

harness the power of diverse users to create collaborative works. There is a

centralised and shared repositories of knowledge and documents covering all

aspects of a project. Finally, support for the content to evolve, improve and expand

over time is available (Murugesan, 2007, p.35-p.36).

Page 24: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 23

Really Simple Syndication (RSS)

RSS is comprised of a family of web feed formats that is used for syndicating the

content from web pages or blogs. It is an XML file that summarises links and

information items to the information sources.

By utilising XMPP PubSub, (a form of middleware) an open protocol, social

networking need not be constrained to closed systems where all the users need to

belong; sharing across boundaries would be possible (Isode Ltd, 2012).

Users are informed of updates to websites or blogs of interest to them. Blog or web

RSS feeds typically link to the word, ‘subscribe.’ It is generally a small rectangle in

orange or the letters XML or RSS in an orange box in a corner of the page.

Aggregator programs or feed reader can check a list of feeds for the user and display

any updated articles they found. Feed readers or aggregators are built into popular

web browsers and feeds can easily be added to a web page.

Atom is a syndication specification for resolving issues of multiple incompatible RSS

versions (Murugesan, 2007, p.35).

Blogs

A blog, short for web log is a powerful two-way communication tool that’s web

based. A blog essentially is a website where users can enter ideas, suggestions

comments etc. Blog posts/blog entries are created in journal style and mostly

displayed in reverse chronological order. Blog entries can contain various elements

such as text, videos or links. An mblog” is written from a mobile device with real-

time blogging known as “liveblogging”. A blog can be private/internal or public.

The “blogsphere” or blogosphere encompasses all blogs as one community or an

interconnected social network. Its possible for any user to publish a blog post

cheaply and easily through a web interface and any other reader can post a comment

on a blog post which are immediately available on the web. Blog posts are very easy

to locate and can be searched for using blog search engines such as Technorati. Blog

Page 25: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 24

posts can link to other ones and thus interesting posts travel from site to site.

Through linked blogs communities can form. Blog readers are able to syndicate

blogs and if a user subscribes to a blog they will know when it is updated which

saves search time. Many companies utilise blogs to engage with employees,

customers and the public (Murugesan, 2007, p.35).

A popular site for blogging is WordPress, which utilises XML-RPC as a very

powerful method to manage a blog. By using XML-RPC users can for example post

comments, articles, read category lists and posts (ActiveBlogging.com/Pankhurst,

2006-2012). Wordpress is not alone, Drupal and other content management systems

on the web use this form of RPC middlware for nearly realtime data exchange

among any number of sites, individuals or to make search bots aware of new

content. Google’s blogspot.com has long been a user of Atom another way to move

data that requires middleware to function.

Folksonomy and Social Bookmarking

This refers to user-created taxonomies of information and is an ad hoc classification

scheme web users create as they surf online to categorize the content found there.

Folksonomy utilises collaboratively generated and open-ended labels or tags that

categorise the content. There is no hierarchy therefore they are open ended, a feature

of folksonomy. Folksonomies such as tags for bookmarking (e.g. in Del,icio.us) can

therefore respond rapidly to innovations and changes in how the users categorise

the web content (Murugesan, 2007, p.37).

Social Bookmarking is the process whereby the users bookmark interesting pages,

assigning tags to each one. The users can then share these tagged bookmarks making

social bookmarking an efficient method to gather contextual knowledge (Ibid).

Many of these sites require pub/sub RPC middleware for continuous interactions

with website users, but they also need more robust middleware deployments for

their interactions with other websites.

Page 26: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 25

Semantic Web

The transition of Web 2.0 to Web 3.0, the semantic web, will result in a

transformation of the web for users by a complete change in the way the users

interact with the data. Online social networks are a primary aspect of this

transformation providing a richer engagement and interactive dialogue exchange on

the website. RSS feeds and Share buttons allow the users interact with content

customising the website which supports a helpful user experience. A lot of the

interest in engaging web content management systems stems from the capacity of

these systems to automate and provide a robust, more engaging experience that’s

based on user behaviour. To quote: “The technologies (i.e. ontologies) are used to

describe Web Services semantically, The description language WSDL is extended -

the new language is called DAML-S (DARPA Agent Markup Language - Services) –

see it here via http://www.daml.org” (Pahl, 2012)

The interactive aspect of Web 2.0 to 3.0 encourages the users to return and stay on a

website longer by providing a more compelling experience online (IT Strategists

2011). Looking to the future, for a global semantic web, novel middleware solutions

will require development. Further synergies between the existing semantic

computing and non-semantic technologies will also need to be exploited in

integrated ways (STI Innsbruck, 2008).

The move from Web 2.0 to 3.0 is a trend in a constant state of development as the

online world transforms into the future (IT Strategists 2011). It will require large

amounts of middleware to parse new knowledge from the current interactions of our

Web 2.0 data streams.

Page 27: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 26

(AI3, 2010)

(STI Innsbruck, 2008).

Beyond semantic web we have the “internet of all things,” coming to look forward to

down the road as one un-networked device after another becomes smarter and

sending us information, (cars, fridges, ovens, and etc).

Software Development using Web-Based

Middleware

Page 28: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 27

• Develop a scenario for Web-based software development –

• What are the development activities involved?

• Deciding which platform to use, Java RMI, use of server

• What infrastructure support is needed?

• Will you use HTTP? UDDI?

• A diagram illustrating the platform including infrastructure and activities might help

here.

For example, if we create this web service for checking contacts information across

multiple user accounts (email, social, and mobile) and making a comparison of the

data found in these accounts.

First, we may need to register our new service into the Universal Description,

Discovery, and Integration Service (UDDI directory), providing it with the proper

The Web Services Description Language (WSDL) data describing our available

services and how they are supposed to be used. These accounts can then search the

UDDI directory to find out how to use our interface. Once our interface is found, the

users account can now communicate with our service because we have provided a

well-defined contact request interface that is registered wit the UDDI. This is still an

important middleware function at very basic level.

What is WSDL why did we choose to use it? The Web Services Description

Language WSDL is another important IDL to mention that allows service providers

to describe the most basic format of Web service requests over different protocols it

defines what a service does, where is resides, and how or when it can and needs to

be properly invoked (Pahl, 2012).

An example of heavy user of more traditional middleware development application

example would be an attempt to “mobilize” college experience. Server to server

middleware’s connecting into legacy university information systems, many of which

would never have even had standardized APIs imagined, when built originally and

pulls requested objects back to an apps home servers making use and parsing what

Page 29: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 28

data is needed from the legacy systems and then sending a new stream of mixed

data to users in a mobile app or traditional web browser.

(Highscalability, 2011)

(Highscalability, 2011)

Newer web middleware often for the online social media environments are used to

allow a user to pass data between service accounts. One important would be to make

authorization and login calls across platforms. For example most of the social media

Page 30: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 29

online influence measurement services (Klout, PeerIndex, and SharedIQ) and third

party comment systems (disqus, intensedebate, etc) operate on via OAUTH (using

one of its API compliant middlewares like a wsgi for example if your site is based in

Python.) (Stackoverflow, 2011) or FacbebookConnect middleware for users ease and

reduce password management and data kept by the service locally reducing server

loads and needs. This is also very common for newspaper and other media websites.

What are the development activities involved? Once a concept is developed. In this case we will continue down the example of a

free contact management provider we began scoping out above. First we would

attempt to assemble the best development team available. Second we would need to

decide which language the website would be written in and why. PHP, PERL,

Python, Ruby, Java RMI (which is a sever side Java not in need of the JVM the RMI is

the integrated server-side java and middleware for remote calls (RPC) and is

CORBA implementation compliant architecture. This is generally going to be based

on the purpose and goals of the site. Also a consideration is the kinds of

middlewares needed for a product to function according to the specified needs and

goals imagined by the designers. For our example we will go with at least PHP 5.4

with its native JSON support.

Which IDL to use is always is a tough choice. With XML now ubiquitous and other

IDLs using the xml schemes but not being XML. Knowing XML is key as a developer

even if you do chose not to go with it. JSON is one that is popular for mobile. It is

much faster and better to parse data and runs much lighter weight on servers

processing power.

JSON sockets well into AJAX (which we would also use for our development) and

the updated browser side JavaScript libraries. JSON is light for mobile but still

strongly descriptive. JSON parsing use to be real problem, but now it’s easy and

very common since parsing has been included into the libraries for JSON. JSON web

services well to clients both mobile and traditional computer browsers and remains

very popular with developers working with mobile apps or with mobile application

in mind.

Page 31: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 30

Infrastructure support needs should be considered early on and dependents on what

development choices you have made. In the start-up setting the right available talent

wins out over specific platforms. Traditionally this has meant greater middleware

needs down the road of a concept becomes greatly scaled, think Facebook’s

development of Thrift in order to work around some of the scaling issues related to

running mySQL as an example.

Infrastructure support teams and hardware can be very expensive and in a start up

setting this can be problematic. Microsoft Windows (WAMP), Mac OS (MAMP),

Solaris (SAMP), iSeries (iAMP), or OpenBSD (OAMP) or now even Salesforce.com’s

Haruku with Ruby would be considered some of the primary choices traditionally

made. Notice though even these options generally run Apache’s HTTP Server, less

scalable mySQL and PHP (and possibly some PERL or Python mixed in as well.)

Plus various kinds of middleware and for possible OAUTH, and work with mobile

apps and making all the reference calls if you wanted to do other fancy bells and

whistles options.

Determining use of information authorization via the other applications API’s from

all our new user many “accounts” is paramount. For example, does our middleware

make API calls? Does it look at the set of contacts and attempt to match and filter out

duplicates? Why are .csv's files so processor heavy, and what do we use to balance

the load if many .csv files need to be parsed. It has taken this long to create a contact-

matching product that actually works well and has a fre-mium business.

Out of the box solutions vs. custom solutions “What is the gap you are looking at?”

Are out of the box solutions enough? Tough choices are made in start up situations,

as custom coding is sometimes unavoidable.

However, this was a fact of life and the normative case up until recent years. Now

cloud based solutions like Amazon’s AWS and EC2 or Rackspace and Microsoft

Azure and others are offering amazingly scalable options for growing web based

Page 32: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 31

start-ups to not have to invest in dedicated infrastructure for a good part of the early

growth phase. Many of these platforms are even robust enough to offer variously

priced stack options like the ones above or on more scalable competitors to mySQL

as noSQL has been gaining in popularity in the last few years. However,

infrastructure-as-a-service (IaaS), and virtual computing infrastructure (storage,

CPU) cloud solutions are now available to provide private or public solutions,

despite some security concerns and are popular, because of the prices they offer, for

what had been a very expensive part of a new company’s infrastructure build out.

Facebook proved that even mySQL limitations could be overcome with a dedicated

development talent and creative construction of its Thrift middleware (The Facebook

Blog, 2007).

Conclusion

Some have argued in recent years like Lori MacVittie at (Highscalability, 2011) that

the model for platform as a service (PaaS) services scalability generally based on

HTTP/REST API integration and heavy reliance ofn AJAX is killing off the need for

many native middlewares.

She is being a bit to critical and hasty. HTTP/RESTful web and AJAX have eased

many server loads, but that does not mean disrespect should be paid to the humble

middleware still distributing the use loads on servers being pounded by page and

other use requests. As the Facebook Thrift example is showing that middleware is

still an important glue to integrate systems. However, she may have a point that the

way developers and infrastructure teams in smaller delployments are dealing less

hands on with decisions with regard to their middleware needs as some of the core

reasons for its use is getting done deeper into the cloud stack. Facebook is massive

and started small and hosting small. Their was no AWS cloud option or easy use

noSQL, they went with what they knew, even if it scaled poorly.

So, middleware is still very among us, but hosted applcations created by developers

for the wb are in the cloud now and the company principles do not have to manage

Page 33: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 32

as much of tradition middleware or hardware. This has made web based startup

costs a bit cheaper for the early scaling period. It is still their just being handled by

infrastructure teams and developers at Amazon.

The other thing that has changed is the level of interoperbility and ubiquitousness of

APIs is growing as well as the standardized ways for developers to tap into them

without always needing to build custom or using off the shelf middleware. This is a

testement to the ideals of CORBA as the grandfather of server-side heterogenous

information systems interoperability and server load management. Other examples

are the level at which various middlwares are deeply integrated into web

applications, think Facebook ‘Thrift,’ Google and ‘Google Protocols,’ Zimbra mail

and ‘SOAP’ and Wordpress and ‘RPC-XML’ specifically but there are countless

others.

However, with the rise of OAUTH, FacebookConnect and others, with an eye to a

future including deeper integration of the “web of all things,” (when everything

getting networked and feeding data back to us fridge, cars, ovens, and etc)

middleware has far from seen its last days as an important part of bringing together

development and infrastructure decisions that organisations and developers find

themselves dealing with.

References

ActiveBlogging.com/Pankhurst, 2006-2012. How To Turn On XML-RPC in WordPress [Online]. Available from: http://activeblogging.com/info/how-to-turn-on-xmlrpc-in-wordpress/ [Accessed April 2012].

AI3 August, 2010. I Have Yet to Metadata I Didn’t Like [Online]. Available from: http://www.mkbergman.com/902/i-have-yet-to-metadata-i-didnt-like/ [Accessed April 2012]. Al-Jaroodi, J. 2010. Middleware Trends for Network Applications. Journal of Network and Computer Applications. Vol 33 Issue 5, pp 523-524

Page 34: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 33

Anderson, J & Franceschi, H. 2012. Java Illuminated, an active learning approach. 3rd ed. USA. Jones and Bartlett Learning Anderson, P. 2007. What is Web 2.0? Ideas, technologies and implications for education [Online]. Available from: http://www.jisc.ac.uk/media/documents/techwatch/tsw0701b.pdf [Accessed April 2012]. Andriole, S.J. 2010. Business Impact of Web 2.0 Technologies [Online]. Available from: http://web.ebscohost.com.remote.library.dcu.ie/ehost/pdfviewer/pdfviewer?vid=3&hid=21&sid=45cf1a1d-c479-4831-b53e-7cd4ecc5f742%40sessionmgr14 [Accessed April 2012]. Arnold, R 2008, ‘What is the purpose of an IDL?’, Middleware Technologies, weblog post April 2008. [Online]. Available from: http://middlewares.wordpress.com/2008/04/28/corba-idl-questions-and-answers/ [Accessed 18 April 2012] Feld, C. and D. Stoddard (2004). Getting IT right: Towards an Integrated Organization. Harvard Business Review. Vol. 82 Issue 2, 72-79 Highscalability, 2011. Web 2.0 Killed the Middleware Star [Online]. Available from: http://highscalability.com/blog/2011/7/26/web-20-killed-the-middleware-star.html [Accessed 16th April 2012] Isode Ltd, 2012. XMPP PubSub [Online]. Available from: http://www.isode.com/whitepapers/xmpp-pubsub.html [Accessed April 2012]. IT Discover, 2012. Middleware an Overview [Online]. Available from: http://itdiscover.com/links/middleware_an_overview [Accessed 16th April 2012] IT Strategists 2011. Web 2.0 to 3.0 defined [Online]. Available from: http://www.itstrategists.com/Web2-3.aspx [Accessed April 2012]. Jacobsen, H.A. 2007 Understanding Standards (with respect to Middleware) [Online] Available from: http://www.eecg.toronto.edu/~jacobsen/courses/ece1770/slides/Standards-in-Middleware.pdf [Accessed 16th April 2012).

Page 35: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 34

Jacobsen, H.A, 2007. Trends in Middleware Systems - Selected Topics and Concepts. [Online] Available from: http://www.eecg.toronto.edu/~jacobsen/courses/ece1770/index-07.html [Accessed 16th April 2012). Lai, L.S.L. and Turban, E. 2008. Groups Formation and Operations in the Web 2.0 Environment and Social Networks [Online]. Available from: http://www.psykol.org/nos/images/2/25/Lai%26Turban2008_groups_formation_and_operations_in_the_web_20_environment_and_social_networks.pdf [Accessed April 2012]. Laudon, K and Traver, C.G. 2010. E-Commerce. Business, Technology, Society. 6th edition. New Jersey, Prentice Hall Mahmoud, Q. H. 2005. Middleware for Communications. [Online] Available from: http://onlinelibrary.wiley.com/book/10.1002/0470862084 [Accessed 10th April 2012] Mascolo, C., Capra, L. and Emmerich, W. (2005) Principles of Mobile Computing Middleware, in Middleware for Communications (ed Q. H. Mahmoud), Chichester, UK, John Wiley & Sons, Ltd. Chapter 11. Middleware.org What is?. [Online] Available from: http://www.middleware.org/whatis.html [Accessed 13th April 2012] Murugesan, S. 2007. Understanding Web 2.0 [Online]. Available from: http://ieeexplore.ieee.org.remote.library.dcu.ie/stamp/stamp.jsp?tp=&arnumber=4287373 [Accessed April 2012]. Object Management Group 2012. Corba Basics. [Online] Available from: http://www.omg.org/gettingstarted/corbafaq.htm [Accessed 10th April 2012] Object Management Group 2012. Whitepapers. [Online] Available from: http://www.omg.org/news/whitepapers/index.htm#CORBA/IIOP [Accessed 10th April 2012] O’Reilly Media, Inc. and UMB TechWeb, 2010. Evolving the Social Web with OAuth 2.0 [Online]. Available from:

Page 36: DCUBS MECB middleware in Web 2.0 Project 2012

Page | 35

http://www.web2expo.com/webexsf2010/public/schedule/detail/14347 [Accessed April 2012]. Pahl, C 2012. Lecture slides from MECB program 2012 Scallan, Todd of Segue Software 2012. Corba Primer, White paper. [Online] Available from: http://www.omg.org/news/whitepapers/seguecorba.pdf [Accessed 10th April 2012] Schmidt, D.C. 2006. Distributed Object Computing with CORBA Middleware [Online] Available from: http://www.cs.wustl.edu/~schmidt/corba-overview.html [Accessed 10th April 2012] STI Innsbruck, 2008. Middleware for the Semantic Web: Enabling a Web of Knowledge and Services [Online]. Available from: http://events.sti2.at/msw-icsc2008/ [Accessed April 2012]. Szyperski, C. et al, 2002. Component Software: Beyond Object Oriented Programming. 2nd edition. Great Britain, Pearson Education Limited. World Wide Web Consortium School, n.d, JSON Tutorial, Accessed 10th April 2012 http://www.w3schools.com/json/default.asp Stackoverflow, 2011. WSGI middlware for OAUTH Authentication [Online] Available from:http://stackoverflow.com/questions/4648838/wsgi-middleware-for-oauth-authentication [Accessed 15th April 2012] The Facebook Blog April 2007. Thrift: We're Giving Away Code [Online] Available from: https://blog.facebook.com/blog.php?post=2261927130 [Accessed 15th April 2012]