0% found this document useful (0 votes)
297 views36 pages

Web 2.0 Middleware Essentials

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.

Uploaded by

James Dellinger
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
297 views36 pages

Web 2.0 Middleware Essentials

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.

Uploaded by

James Dellinger
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

CA668A

E-Commerce Infrastructure: Middleware in Web 2.0


19th April 2012

Deirdre Connolly Grainne Malone Jennifer Murphy James Dellinger

11212127 55149774 52595354 11219889

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 | 1

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 | 2

Conclusion ............................................................................................................................. 31 References .............................................................................................................................. 32

Page | 3

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 socalled 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 startups 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 | 4

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 its 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 welldefined, 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 | 5

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, its a layer of services. In effect, its 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, its the interface that glues independent systems together and makes them communicate and work well together. Its 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 | 6

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 developers time. Page | 7

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, its open source and vendor independent.

Principles of Distributed Object Technology


Common middleware platforms include CORBA, Microsofts 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 | 8

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. Corbas 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 thats 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 | 9

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 objects 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. 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). The applet programmer invokes methods on the server as though they are local Java method

Page | 10

(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. Its 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 | 11

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 ones personal life and professional persona. Currently, Facebook is seen to manage ones 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 | 12

Below is an example of the information that could be compiled on a person, which is connected with across all platforms.

Michelle OReilly Contact Personal Email Work Personal Mobile Number Work Number(s) [email protected] [email protected] 083 3390055 016437869 0862926564 LinkedIn URL Facebook URL Twitter Handle www.linkedin.com/moreilly www.facebook.com/moreilly @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 users 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 | 13

This is the functionality of the service however the focus of this report is on the webbased 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 | 14

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 endusers 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 | 15

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 | 16

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 users 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 | 17

advantages is that of improved collaboration with customers, suppliers 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 | 18

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 (OReilly 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 | 19

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 Microsofts XBAP and Mozillas 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 doesnt 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 applications look and feel. (Ibid). Page | 20

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 | 21

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 | 22

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 thats 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 realtime 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 | 23

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. Googles 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 | 24

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 thats 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 | 25

(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 | 26

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 middlewares 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 | 27

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 | 28

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 its 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 | 29

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 Facebooks 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.coms Haruku with Ruby would be considered some of the primary choices traditionally made. Notice though even these options generally run Apaches 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 APIs 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 contactmatching 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 Amazons AWS and EC2 or Rackspace and Microsoft Azure and others are offering amazingly scalable options for growing web based Page | 30

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 companys 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 | 31

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-xmlrpcin-wordpress/ [Accessed April 2012]. AI3 August, 2010. I Have Yet to Metadata I Didnt 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 | 32

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&s id=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-andanswers/ [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-middlewarestar.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-inMiddleware.pdf [Accessed 16th April 2012). Page | 33

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_operatio ns_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] OReilly Media, Inc. and UMB TechWeb, 2010. Evolving the Social Web with OAuth 2.0 [Online]. Available from:

Page | 34

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-oauthauthentication [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]

Page | 35

You might also like