• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
DCUBS MECB middleware in Web 2.0 Project 2012
 

DCUBS MECB middleware in Web 2.0 Project 2012

on

  • 1,272 views

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

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.

Statistics

Views

Total Views
1,272
Views on SlideShare
1,251
Embed Views
21

Actions

Likes
0
Downloads
5
Comments
0

6 Embeds 21

http://cantankerousgentleman.blogspot.com 11
http://www.docshut.com 5
http://cantankerousgentleman.blogspot.gr 2
http://www.linkedin.com 1
http://cantankerousgentleman.blogspot.ie 1
http://cantankerousgentleman.blogspot.com.ar 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    DCUBS MECB middleware in Web 2.0 Project 2012 DCUBS MECB middleware in Web 2.0 Project 2012 Document Transcript

    • CA668A E-Commerce Infrastructure: Middleware in Web 2.0 19th April 2012 Deirdre Connolly 11212127 Grainne Malone 55149774 Jennifer Murphy 52595354 James Dellinger 11219889
    • DeclarationIn submitting this project, I declare that the project material, which I now submit, ismy own work. Any assistance received by way of borrowing from the work of othershas been cited and acknowledged within the work. I make this declaration in theknowledge that a breach of the rules pertaining to project submission may carryserious consequences. Page | 1
    • Table of ContentsIntroduction and Objectives .................................................................................................. 4 What is Middleware ........................................................................................................... 5 Objectives ............................................................................................................................. 6Principles 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 .......................................................................................................... 9Common Object Request Broker Architecture ................................................................... 9 CORBA ORB Architecture ............................................................................................... 10 IDL Interface Definition Language ................................................................................. 10 CORBA Implementations ................................................................................................ 11Principles and Architecture of a Web-Based Middleware Platform ............................. 12 Concept ............................................................................................................................... 12 Interface Definition Language......................................................................................... 14 JavaScript Object Notation (JSON) ................................................................................. 14 Protocols ............................................................................................................................. 15 Common Services.............................................................................................................. 16Software 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 .................................................................................................................... 25Software Development using Web-Based Middleware .................................................. 26 What are the development activities involved? ........................................................... 29 Page | 2
    • Conclusion ............................................................................................................................. 31References .............................................................................................................................. 32 Page | 3
    • Introduction and ObjectivesThe concept of middleware started to gain momentum in the 1990s as an integrationand interoperability solution for applications running on heterogeneous computingand communications devices (Mahmoud, 2005). Today more than ever, due to theexponential growth of web based technologies, middleware is an essential service foralmost any type of distributed computing environment and networked application.A distributed system, also known as heterogeneous systems, is a collection ofcomputers linked via some network (Pahl, 2012).In this paper we will discus the continued use of various middlewares in the Web 2.0infrastructure environment. We will discuss and apply knowledge of the theoriesbehind many of the six forms of middleware identified by middleware.org as theypertain to the operations and infrastructure of forms of Web 2.0 browswer basedapplications. We will look at the role of CORBA and a bit at the history of whymiddleware has been essential. This paper will discuss AJAX and the use of XMLand JSON IDLs and some of their pros and cons for use and how the these two IDLsmight be used in a start-up website/mobile application development senario.Contrarary to opinions, like Lori MacVittie, Web 2.0 has not killed the middlewarestar (Highscalability, 2011). AJAX and the RESTful web environment has reducedthe 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 intoapplications or deep into platforms (Google Protocols, Facebook Trhift, for example)or buried deep in cloud platforms to manage server loads. We will explore classicexamples that are still with us like XML-RPC and its core role in Pub/Sub forblogging 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 discusswhy middlewares utilizing OAUTH and to a lesser degree FacebookConnect are anewer form of evolved middleware. Page | 4
    • What is MiddlewareThe objective of Middleware is to ease the task of designing, programming andmanaging distributed applications by providing a simple, consistent and integrateddistributed programming environment. Essentially, Middleware is a distributedsoftware layer, or ‘platform’ which supports the underlying distributed environmentwith it’s multitude of network technologies, machine architectures, operatingsystems and programming languages (itdiscover.com 2012) One of the most popularmodels is object based Middleware in which applications are structured into objectsthat interact with each other, irrespective of where those applications reside. Aclassical form of a distributed system is a client server system.The goal of middleware solutions is to allow disparate systems or applications totalk to each other and exchange information without having to rewrite theindividual applications or modify the underlying infrastructure. It provides a well-defined, functional framework that is an essential component for almost anynetworked 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)ObjectivesThe core objective of middleware is to support the design and development ofdistributed applications in networked environments by providing full integration,interoperability and communication services across all layers of the softwarearchitecture (Al-Jaroodi, 2010). So, it’s a layer of services. In effect, it’s theinfrastructure software that makes systems integration easier, more efficient andreduces the incidence of errors (Jacobsen, 2007).Conceptually middleware is often thought of as the "glue" between softwarecomponents or between software and the network. It is the middle layer of servicesthat acts as a Common Gateway Interface (CGI) between a client (browser) on thefront end and a database on the back end. In other words, it’s the interface that gluesindependent systems together and makes them communicate and work welltogether. It’s also referred to as the ‘plumbing’, the central pipe that translates andfacilitates 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 developmentPrinciples of MiddlewareLayered ArchitectureConceptually, Internet architecture can be characterized as a modular structurecontaining 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 andabove the operating system and network layer.Advantages of MiddlewareOne of the core benefits is that it provides a unified horizontal architecture thatconnects 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 thenetwork layer without forcing changes in the applications layer and vice versa.Middleware hides most of the details of distribution from application designersthereby freeing up developer’s time. Page | 7
    • According to a framework described by Mascolo et al, (2005) middleware takes careof • 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 vendorindependent.Principles of Distributed Object TechnologyCommon middleware platforms include CORBA, Microsoft’s Distributed COM, andJava RMI.These are object-based models in which applications are structured into objects thatinteract with each other. Object- oriented software development is based on the ideathat • 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
    • EncapsulationEncapsulation can be described as a protective barrier that prevents program codeand 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 encapsulationis that it gives maintainability, flexibility, reusability and extensibility to our code.PolymorphismIn object oriented programming (OOP) polymorphism refers to the ability to createobjects in multiple forms. It means that there can be multiple implementations of anobject, which supports the principle of reusability. It is based on the concept ofinheritance and class hierarchy in OOP (Anderson & Franceschi, 2012).Language IndependenceLanguage bindings in Corba enable soft ware components written in differentprogramming languages to work with each other. In other words, it provides amapping or translation service that supports multiple computer languages. Corba’sIDL specifies the language bindings. Essentially it means that objects written in onelanguage can be implemented or mapped to different programming languages. Wewill look at this later in the section on IDL.Component SoftwareComponent Software is software that’s developed in self-contained units that caninteract with other components to form a functioning system. Component basedsoftware supports modular structures that offer benefits such as adaptability,scalability and maintainability. It enables reuse of software parts thereby extendingthe use and investment in individual units or parts (Szyperski et al, 2002)Common Object Request Broker ArchitectureCORBA is a specification produced by the Object Management Group (OMG) thataddresses interoperability standards in distributed environments. A classic example Page | 9
    • of a distributed system is a client/server system. CORBA is an open standard thatrepresents industry consensus from more than 800 companies. Open standards areby their nature platform independent, collaboratively developed, vendor neutral,and do not depend on any commercial Intellectual property. (Jacobsen, 2007)CORBA ORB ArchitectureThe ORB (Object Request Broker) is the mechanism for communicating clientrequests to remote target objects. It can be conceptualized as a communication busbetween client and server objects. Interfaces must be specified in the CORBAstandard Interface Definition Language (IDL).IDL Interface Definition LanguageIDL 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 caninvoke a method of the object, even if the object is not written in the same languageas the client object. In effect, IDL acts as a programming language translator bytaking an IDL description of an object and translating it into a specific set oflanguage bindings (Pahl, 2012).An IDL interface description is then mapped using an IDL compiler to nativelanguages such as Java, C, C++ and others. This allows each programmer to writesource code independently in the most suitable language. For example, a serverobject implemented in C++ can be accessed by a Java applet. The appletprogrammer invokes methods on the server as though they are local Java methodcalls (Schmidt, 2006).A client can connect to a server object statically if the server interface is known atbuild time or the client can use dynamic binding to ascertain the server interface andconstruct a call to the server (Scallan, 2012). Page | 10
    • (Source: Schmidt, 2006)CORBA ImplementationsMiddleware systems such as CORBA implementations have been successful fororganizations to create interoperability involving current and legacy systems.CORBA is useful because of the easy way that it integrates components from somany vendors. It’s widely used in large enterprises. One of the most important usesis in servers that handle a large number of clients, at heavy hit rates, with highreliability (Object Management Group, 2012). Page | 11
    • Principles and Architecture of a Web-BasedMiddleware PlatformBased on these objectives, develop ideas and concepts for a Web-based middlewareplatform. In particular address the following: interface definition languages,protocols, common services and facilities, development of software in a wide-areaenvironment.ConceptWith the social networks being a dominant form of communication, a highpercentage of our communication from both social and work life is conductedonline. Currently there is no almighty platform which incorporates both whilst at thesame time separating one’s personal life and professional persona. Currently,Facebook is seen to manage one’s personal life and LinkedIn to maintain a careerand business life persona. The implications are that people are using many differentsocial networking platforms, usually with a crossover in people. Friends could byfollowed on Twitter, “friended” on Facebook, connected on LinkedIn, circled inGoogle + and add as chat contact on Gmail.The concept is to have a web-based middleware platform is a web service tointegrate and manage contacts from multiple web-based email accounts, web-basedsocial networks, and mobile devices. Having disparate contacts in 8+ places differentweb accounts is not an uncommon problem with the shift to cloud based socialmedia and email services. With all the different social network platforms, one islikely to have a high volume of contacts, many duplicate but more importantly mostincomplete. Each of these platforms collects different types information about theperson, and an aggregator can compile this all and at the same time eliminateduplicates. Page | 12
    • Below is an example of the information that could be compiled on a person, which isconnected with across all platforms. Michelle O’Reilly Contact Personal Email Michelle.oreilly@gmail.com Work Michelle.oreilly@ge.com Personal Mobile Number 083 3390055 Work Number(s) 016437869 0862926564 LinkedIn URL www.linkedin.com/moreilly Facebook URL www.facebook.com/moreilly Twitter Handle @michelleoreillyThis would be a service for users working outside the environment ofcomprehensive paid CRM like Salesforce of Microsoft Dynamics. The functionalityof this contact aggregation service goes beyond the initial ‘sync’ of contactinformation, the tool would be constantly scanning a user’s networks to search fornew additions or updates, moreover a user can add new networks and sync the newcontact information. Additional functionality would include a manual edit functionto 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 newcontact information back to their email client or to their mobile device. Thesynchronisation 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 web-based middleware aspect. Although, this is not the focus it is important to lay outthe functions the service provides to understand the choices made for the supportingtechnologies.Interface Definition LanguageAs discussed in the introduction, the purpose of an interface definition language isto define the capabilities of a distributed service along with a common set of datatypes for interacting with those distributed services. (Arnold, 2008) It is used becauseit meets four key objectives as listed below (Arnold, 2008); 1. Language Independence: 2. Distributed service specification: 3. Definition of complex data types: 4. Hardware IndependenceJavaScript Object Notation (JSON)The IDL chosen for this conceptual web-based middleware is JSON. JSON is fastbecoming the IDL of choice and the preferred alternative to XML due its suitabilityfor mobile devices. It is described as the ‘The Fat-Free Alternative to XML’ on theJSON website, JSON promises the same benefits of interoperability and openness,but without the disadvantages. XML is not well suited to data-interchange, whereasJSON is described as a lightweight text-data interchange format, it is this attributethat makes it suitable for our conceptual design as the primary exchange is textbased.As with all Interface Design Languages, JSON is language and platformindependent. Like XML it is "self-describing" and hence human readable. It usesJavaScript syntax for describing data objects. JSON parsers and JSON libraries existsfor many different programming languages. (W3C, n.d) Page | 14
    • ProtocolsOur conceptual web-based middleware is centred on multiple social networks andextracting data from the same. Therefore, the protocol needs to have the capability ofauthorising the service to pull data from the users social networks account. Aprotocol named OAuth was chosen as apart from its widespread use and popularityit is fit for this purpose.OAuth allows for access to be gained to resources stored on a server, the case of ourconcept these ‘resources’ would be the users contact-information, this can be doneby 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 donewithout the third party being required to provide a password and username etc.The resource owner needs to grant permission to facilitate the client gaining accessto server resources there is an inherent security aspect to this protocol which has ledit to be almost the de facto standard for type of process. The access is managed by atoken such a way to allow for a matching ‘shared-secret’ (OAuth, n.d) etc. thusavoiding the necessity of the resource owner being required to share privilegedinformation with the client. The token is used to ensure the users credentials are notshared with the client. Unlike the resource owner credentials, tokens can be issuedwith a restricted scope and limited lifetime, and revoked independently (OAuth,n.d)The OAuth specification is split into two distinct components. The first componentoutlines a redirection-based user-agent process for end-users to authorize clientaccess to their resources. This is achieved through direct authentication with theserver and provisioning tokens to the client for use with the authentication method(OAuth, n.d). The second component of the specification outlines a method formaking ‘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 therequest is being made’ (OAuth, n.d)Common ServicesCommon services required by this conceptual web based middleware platformwould be similar to those offered by any object based middleware platform. Keyservices remain naming, and security. Lets review them.NamingA standardised intuitive naming convention across the platform essential as the datarequires sorting on the client side in our conceptual service.ExternalizationThis is required to coordinate the transformation of objects to and from externalmedia as the service could potentially offer exchange non-text based content.CommunicationCommunication protocol between objects is an essential service to maintain clarityPropertySupports the association of name-value pairs with objectsSecurityDistributed systems operate over open networks; authentication, privacy andintegrity are importantSoftware 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 ofcomprehensive paid CRM like SalesForce of Microsoft Dynamics. It would have awide scope of potential applications and would have mass-market appeal andcommercialisation prospects.This web-based middleware concept could easily be utilised for other applicationsscenarios. For example, for people signing up for a new social network platform, thismiddleware could be used to find contacts that are already part of that network andautomatically connect and update any missing data. Moreover, the data exchangedoes not have to be limited to text data, media could be exchange between multipleplatforms, for example an automatic export function between a user’s YouTube andFacebook account.These examples encapsulate the fundamental function of this conceptual web basedmiddleware platform- Easy exchange, synchronisation and export of data acrossmultiple social network platforms.Web 2.0Advanced Internet technology and the associated applications is what is known asWeb 2.0. These applications include blogs, wikis, podcasting, RSS, social networksand mashups. A significant difference between Web 2.0 and the traditional web isthat of user-generated content with increased collaboration among Internet users.Web 2.0 is an umbrella term for emerging trends, principles and a core oftechnologies that is changing what is on the Web and how the Web actuallyoperates. Organisations that understand these new technologies and applicationswhilst utilising the benefits at an early stage, have the possibility of greatlyimproving internal business processes and supply chains. One of the most beneficial Page | 17
    • advantages is that of improved collaboration with customers, supplier’s internalusers 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 (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.0A key driver of Web 2.0 development has been the emergence of a new generation ofweb- related standards and technologies. The delivery of Web 2.0 services andapplications has been driven by the widespread adoption of the group oftechnologies known as Ajax. For users of the traditional HTML-based websites thelow dynamism has frustrated users. With the introduction of Ajax success hasemerged. Utilising this technology, a portion of a web page can be dynamicallyreloaded in real-time creating an impression of more natural and richer applicationswith responsive interfaces (Anderson, 2007, p.27-p.28). Page | 19
    • The Ajax technologies include HTML/XHTML which are a standards based methodof presenting information within a browser. CSS is also utilised and DocumentObject Model (DOM) a method to dynamically control the document. XML andXSLT are utilised for data manipulation and interchange. XMLHttpRequest is usedfor asynchronous data retrieval from the server, also used is JavaScript or ECMAscript (Ibid).The most important of the alternatives to Ajax utilise Flash, the ubiquitous graphicsplug-in from Adobe, which allows sophisticated and quick-to-download vectorgraphics and animation to display in the browser window (Anderson, 2007, p.28).There are also several emerging technologies focusing on displaying rich graphics inthe 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 areAJAX, Flex and Google Web Toolkit. With AJAX-style programming, web pages areincreasingly responsive as small amounts of data are exchanged with the server andthe entire web page doesn’t require reloading each time a change is requested fromthe user. An AJAX application eliminates the start-stop-start-stop interactions by theintroduction of an AJAX engine between the server and user. This renders the userinterface and communicates with the server for the user. The web page is moreinteractive, faster and more usable enabling the easier deployment of rich-client Webapplications (Murugesan, 2007, p.38)Adobe Flex is an application development solution used for the creation of deliveryof cross-platform rich Internet applications (RIAs) on the web. Flex is based on Flashand it provides a standards-based language and a programming model supportingcommon design patterns. Flex provides a more productive developmentenvironment that is Eclipse-based, it dramatically improves the performance of theapplication, supports applications requiring real-time data push and provides morecontrol over the application’s look and feel. (Ibid). Page | 20
    • Google Web Toolkit (GWT) is an open-source Java development framework makingit straightforward to develop and debug AJAX applications. GWT allows developerscreate applications in Java using the Java development tools they choose. Itscompiler translates the Java application to browser-compliant JavaScript and HTMLto deploy. Widgets are also provided by the toolkit for construction of the userinterface elements that comprise an AJAX application. Using GWT users are offereda dynamic and standards-compliant experience (Ibid).(Andriole, 2010, p.71).WebMailAccess to email via an email broswer can be taken for granted. However, many ofthe webmail services must utilize middleware. The Simple Object Access Protocol(SOAP) is a protocol specification that defines a very uniform manner of passingXML-encoded data. It also defines a way remote procedure calls (RPC) using HTTPare made as the underlying communications protocol. It can perform as a wrapperfor wider environments and other middleware implementations. (Pahl, 2012) SOAPsupports 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 usedifferent middlewares some propritory and others open sourced.WikisA wiki is a simple, however powerful web-based content management orcollaborative-authoring system for the creation and editing of content. Any user isable to add a new article or revise an existing article via the web browser. Users canalso track any changes made to the article. Features of wikis include a wiki mark-uplanguage called wikitext providing a short way to format text and link externaldocuments and contents. New pages can be created by the contributors and easilylinked 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 isrequested the wiki software converts the wiki markup into HTML and creates linksto pages, wrapping this converted content in a template providing a consistent lookto all pages. Hyperlinks to pages in the wiki are automatically created with wikisoftware creating links based on page title. It is possible to write or edit and publishwithout editorial approval or oversight.The content in a wiki is managed via change monitoring and the ability of the wikito roll back to a previous version preventing spam. User access and privileges canalso be controlled. Searching for specific information or a topic within a wiki ispossible using associated keywords. Wikis offer asynchronous contribution by anumber of users, for example experts or employees who may be situated in differentcountries. They also offer an excellent means to annotate information or to engage indiscussion on evolving topics. There is a higher communication efficiency andproductivity using wikis as opposed to exchanging e-mails. Wikis offer support toharness the power of diverse users to create collaborative works. There is acentralised and shared repositories of knowledge and documents covering allaspects of a project. Finally, support for the content to evolve, improve and expandover 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 thecontent from web pages or blogs. It is an XML file that summarises links andinformation items to the information sources.By utilising XMPP PubSub, (a form of middleware) an open protocol, socialnetworking need not be constrained to closed systems where all the users need tobelong; sharing across boundaries would be possible (Isode Ltd, 2012).Users are informed of updates to websites or blogs of interest to them. Blog or webRSS feeds typically link to the word, ‘subscribe.’ It is generally a small rectangle inorange 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 displayany updated articles they found. Feed readers or aggregators are built into popularweb browsers and feeds can easily be added to a web page.Atom is a syndication specification for resolving issues of multiple incompatible RSSversions (Murugesan, 2007, p.35).BlogsA blog, short for web log is a powerful two-way communication tool that’s webbased. A blog essentially is a website where users can enter ideas, suggestionscomments etc. Blog posts/blog entries are created in journal style and mostlydisplayed in reverse chronological order. Blog entries can contain various elementssuch 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 aninterconnected social network. Its possible for any user to publish a blog postcheaply and easily through a web interface and any other reader can post a commenton a blog post which are immediately available on the web. Blog posts are very easyto 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 syndicateblogs and if a user subscribes to a blog they will know when it is updated whichsaves 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 verypowerful method to manage a blog. By using XML-RPC users can for example postcomments, articles, read category lists and posts (ActiveBlogging.com/Pankhurst,2006-2012). Wordpress is not alone, Drupal and other content management systemson the web use this form of RPC middlware for nearly realtime data exchangeamong any number of sites, individuals or to make search bots aware of newcontent. Google’s blogspot.com has long been a user of Atom another way to movedata that requires middleware to function.Folksonomy and Social BookmarkingThis refers to user-created taxonomies of information and is an ad hoc classificationscheme web users create as they surf online to categorize the content found there.Folksonomy utilises collaboratively generated and open-ended labels or tags thatcategorise the content. There is no hierarchy therefore they are open ended, a featureof folksonomy. Folksonomies such as tags for bookmarking (e.g. in Del,icio.us) cantherefore respond rapidly to innovations and changes in how the users categorisethe 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 makingsocial bookmarking an efficient method to gather contextual knowledge (Ibid).Many of these sites require pub/sub RPC middleware for continuous interactionswith website users, but they also need more robust middleware deployments fortheir interactions with other websites. Page | 24
    • Semantic WebThe transition of Web 2.0 to Web 3.0, the semantic web, will result in atransformation of the web for users by a complete change in the way the usersinteract with the data. Online social networks are a primary aspect of thistransformation providing a richer engagement and interactive dialogue exchange onthe website. RSS feeds and Share buttons allow the users interact with contentcustomising the website which supports a helpful user experience. A lot of theinterest in engaging web content management systems stems from the capacity ofthese systems to automate and provide a robust, more engaging experience that’sbased on user behaviour. To quote: “The technologies (i.e. ontologies) are used todescribe 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 awebsite longer by providing a more compelling experience online (IT Strategists2011). Looking to the future, for a global semantic web, novel middleware solutionswill require development. Further synergies between the existing semanticcomputing and non-semantic technologies will also need to be exploited inintegrated ways (STI Innsbruck, 2008).The move from Web 2.0 to 3.0 is a trend in a constant state of development as theonline world transforms into the future (IT Strategists 2011). It will require largeamounts of middleware to parse new knowledge from the current interactions of ourWeb 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 todown the road as one un-networked device after another becomes smarter andsending us information, (cars, fridges, ovens, and etc).Software Development using Web-BasedMiddleware 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 acrossmultiple user accounts (email, social, and mobile) and making a comparison of thedata 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 properThe Web Services Description Language (WSDL) data describing our availableservices and how they are supposed to be used. These accounts can then search theUDDI directory to find out how to use our interface. Once our interface is found, theusers account can now communicate with our service because we have provided awell-defined contact request interface that is registered wit the UDDI. This is still animportant middleware function at very basic level.What is WSDL why did we choose to use it? The Web Services DescriptionLanguage WSDL is another important IDL to mention that allows service providersto describe the most basic format of Web service requests over different protocols itdefines what a service does, where is resides, and how or when it can and needs tobe properly invoked (Pahl, 2012).An example of heavy user of more traditional middleware development applicationexample would be an attempt to “mobilize” college experience. Server to servermiddleware’s connecting into legacy university information systems, many of whichwould never have even had standardized APIs imagined, when built originally andpulls 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 mixeddata 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 toallow a user to pass data between service accounts. One important would be to makeauthorization and login calls across platforms. For example most of the social media Page | 28
    • online influence measurement services (Klout, PeerIndex, and SharedIQ) and thirdparty comment systems (disqus, intensedebate, etc) operate on via OAUTH (usingone of its API compliant middlewares like a wsgi for example if your site is based inPython.) (Stackoverflow, 2011) or FacbebookConnect middleware for users ease andreduce password management and data kept by the service locally reducing serverloads 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 afree contact management provider we began scoping out above. First we wouldattempt to assemble the best development team available. Second we would need todecide 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 isthe integrated server-side java and middleware for remote calls (RPC) and isCORBA implementation compliant architecture. This is generally going to be basedon the purpose and goals of the site. Also a consideration is the kinds ofmiddlewares needed for a product to function according to the specified needs andgoals imagined by the designers. For our example we will go with at least PHP 5.4with its native JSON support.Which IDL to use is always is a tough choice. With XML now ubiquitous and otherIDLs using the xml schemes but not being XML. Knowing XML is key as a developereven if you do chose not to go with it. JSON is one that is popular for mobile. It ismuch faster and better to parse data and runs much lighter weight on serversprocessing power.JSON sockets well into AJAX (which we would also use for our development) andthe updated browser side JavaScript libraries. JSON is light for mobile but stillstrongly descriptive. JSON parsing use to be real problem, but now it’s easy andvery common since parsing has been included into the libraries for JSON. JSON webservices well to clients both mobile and traditional computer browsers and remainsvery popular with developers working with mobile apps or with mobile applicationin mind. Page | 29
    • Infrastructure support needs should be considered early on and dependents on whatdevelopment choices you have made. In the start-up setting the right available talentwins out over specific platforms. Traditionally this has meant greater middlewareneeds down the road of a concept becomes greatly scaled, think Facebook’sdevelopment of Thrift in order to work around some of the scaling issues related torunning mySQL as an example.Infrastructure support teams and hardware can be very expensive and in a start upsetting this can be problematic. Microsoft Windows (WAMP), Mac OS (MAMP),Solaris (SAMP), iSeries (iAMP), or OpenBSD (OAMP) or now even Salesforce.com’sHaruku with Ruby would be considered some of the primary choices traditionallymade. Notice though even these options generally run Apache’s HTTP Server, lessscalable 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 mobileapps and making all the reference calls if you wanted to do other fancy bells andwhistles options.Determining use of information authorization via the other applications API’s fromall our new user many “accounts” is paramount. For example, does our middlewaremake API calls? Does it look at the set of contacts and attempt to match and filter outduplicates? Why are .csvs files so processor heavy, and what do we use to balancethe 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. Nowcloud based solutions like Amazon’s AWS and EC2 or Rackspace and MicrosoftAzure 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 earlygrowth phase. Many of these platforms are even robust enough to offer variouslypriced stack options like the ones above or on more scalable competitors to mySQLas 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, forwhat 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 dedicateddevelopment talent and creative construction of its Thrift middleware (The FacebookBlog, 2007).ConclusionSome have argued in recent years like Lori MacVittie at (Highscalability, 2011) thatthe model for platform as a service (PaaS) services scalability generally based onHTTP/REST API integration and heavy reliance ofn AJAX is killing off the need formany native middlewares.She is being a bit to critical and hasty. HTTP/RESTful web and AJAX have easedmany server loads, but that does not mean disrespect should be paid to the humblemiddleware still distributing the use loads on servers being pounded by page andother use requests. As the Facebook Thrift example is showing that middleware isstill an important glue to integrate systems. However, she may have a point that theway developers and infrastructure teams in smaller delployments are dealing lesshands on with decisions with regard to their middleware needs as some of the corereasons for its use is getting done deeper into the cloud stack. Facebook is massiveand started small and hosting small. Their was no AWS cloud option or easy usenoSQL, they went with what they knew, even if it scaled poorly.So, middleware is still very among us, but hosted applcations created by developersfor 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 startupcosts a bit cheaper for the early scaling period. It is still their just being handled byinfrastructure teams and developers at Amazon.The other thing that has changed is the level of interoperbility and ubiquitousness ofAPIs is growing as well as the standardized ways for developers to tap into themwithout always needing to build custom or using off the shelf middleware. This is atestement to the ideals of CORBA as the grandfather of server-side heterogenousinformation systems interoperability and server load management. Other examplesare the level at which various middlwares are deeply integrated into webapplications, think Facebook ‘Thrift,’ Google and ‘Google Protocols,’ Zimbra mailand ‘SOAP’ and Wordpress and ‘RPC-XML’ specifically but there are countlessothers.However, with the rise of OAUTH, FacebookConnect and others, with an eye to afuture including deeper integration of the “web of all things,” (when everythinggetting 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 togetherdevelopment and infrastructure decisions that organisations and developers findthemselves dealing with.ReferencesActiveBlogging.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/ [AccessedApril 2012].Al-Jaroodi, J. 2010. Middleware Trends for Network Applications. Journal of Networkand 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 LearningAnderson, 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 postApril 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 IntegratedOrganization. Harvard Business Review. Vol. 82 Issue 2, 72-79Highscalability, 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 | 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.0Environment 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 HallMahmoud, 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 ComputingMiddleware, 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 | 34
    • http://www.web2expo.com/webexsf2010/public/schedule/detail/14347[Accessed April 2012].Pahl, C 2012. Lecture slides from MECB program 2012Scallan, Todd of Segue Software 2012. Corba Primer, White paper. [Online] Availablefrom: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. 2ndedition. Great Britain, Pearson Education Limited.World Wide Web Consortium School, n.d, JSON Tutorial, Accessed 10th April 2012http://www.w3schools.com/json/default.aspStackoverflow, 2011. WSGI middlware for OAUTH Authentication [Online] Availablefrom:http://stackoverflow.com/questions/4648838/wsgi-middleware-for-oauth-authentication [Accessed 15th April 2012] The Facebook Blog April 2007. Thrift: Were Giving Away Code [Online] Availablefrom: https://blog.facebook.com/blog.php?post=2261927130 [Accessed 15th April2012] Page | 35