SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
CA668A



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




         Deirdre Connolly   11212127
          Grainne Malone    55149774
         Jennifer Murphy    52595354
          James Dellinger   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 so-
called Web 1.0 environment. They are however, now more embbeded into
applications or deep into platforms (Google Protocols, Facebook Trhift, for example)
or buried deep in cloud platforms to manage server loads. We will explore classic
examples that are still with us like XML-RPC and its core role in Pub/Sub for
blogging platforms like Wordpress and why Facebook needed to develop its Thrift
(now an Apache open source project) middleware to solve a classic problem start-
ups running on a LAMP stack, that of scaling mySQL massively. We will discuss
why middlewares utilizing OAUTH and to a lesser degree FacebookConnect are a
newer form of evolved middleware.


                                                                           Page | 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 it’s multitude of network technologies, machine architectures, operating
systems and programming languages (itdiscover.com 2012) One of the most popular
models is object based Middleware in which applications are structured into objects
that interact with each other, irrespective of where those applications reside. A
classical form of a distributed system is a client server system.


The goal of middleware solutions is to allow disparate systems or applications to
talk to each other and exchange information without having to rewrite the
individual applications or modify the underlying infrastructure. It provides a well-
defined, functional framework that is an essential component for almost any
networked application. (Al-Jaroodi, 2010).


What are the types of middleware? Defined by middleware.org:
       1. Asynchronous Remote Procedure Calls (RPC) - client makes calls to procedures
       running on remote computers but does not wait for a response. If connection is lost,
       client must re-establish the connection and send request again. High scalability but
       low recovery, largely replaced by type 2
       2. Synchronous RPC – distributed program using this may call services available on
       different computers – makes it possible to achieve this without undertaking detailed
       coding (e.g. RMI in Java)
       3. Publish/Subscribe – often called push technology, here server monitors activity and
       sends information to client when available. It is asynchronous, the clients
       (subscribers) perform other activities between notifications from the server. Useful for
       monitoring situations where actions need to be taken when particular events occur.




                                                                                     Page | 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, it’s a layer of services. In effect, it’s the
infrastructure software that makes systems integration easier, more efficient and
reduces the incidence of errors (Jacobsen, 2007).


Conceptually middleware is often thought of as the "glue" between software
components or between software and the network. It is the middle layer of services
that acts as a Common Gateway Interface (CGI) between a client (browser) on the
front end and a database on the back end. In other words, it’s the interface that glues
independent systems together and makes them communicate and work well
together. It’s also referred to as the ‘plumbing’, the central pipe that translates and
facilitates communication between software components.


The key objectives of middleware can be summarized as follows
   •   Application portability
   •   Transparency - Middleware operates in the background and so it is
       transparent to users and programmers. It allows for transparent invocation of
       remote and distributed objects (applications) irrespective of location.




                                                                                     Page | 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 developer’s 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, it’s open source and vendor
independent.




Principles of Distributed Object Technology
Common middleware platforms include CORBA, Microsoft’s Distributed COM, and
Java RMI.
These are object-based models in which applications are structured into objects that
interact with each other. Object- oriented software development is based on the idea
that
     •   Objects can reside on any computer in a networked system
     •   Other programs can invoke operations by sending messages to the
         application or computer that hosts these objects
     •   Ideally these programs will not be able to distinguish between local and
         remote objects (Pahl, 2012)
Object based Middleware is based on the following object oriented principles

                                                                                 Page | 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. Corba’s
IDL specifies the language bindings. Essentially it means that objects written in one
language can be implemented or mapped to different programming languages. We
will look at this later in the section on IDL.

Component Software
Component Software is software that’s developed in self-contained units that can
interact with other components to form a functioning system. Component based
software supports modular structures that offer benefits such as adaptability,
scalability and maintainability. It enables reuse of software parts thereby extending
the use and investment in individual units or parts (Szyperski et al, 2002)




Common Object Request Broker Architecture
CORBA is a specification produced by the Object Management Group (OMG) that
addresses interoperability standards in distributed environments. A classic example

                                                                                   Page | 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 object’s functionality and how a potential client can
invoke a method of the object, even if the object is not written in the same language
as the client object. In effect, IDL acts as a programming language translator by
taking an IDL description of an object and translating it into a specific set of
language bindings (Pahl, 2012).


An IDL interface description is then mapped using an IDL compiler to native
languages such as Java, C, C++ and others. This allows each programmer to write
source code independently in the most suitable language. For example, a server
object implemented in C++ can be accessed by a Java applet.                The applet
programmer invokes methods on the server as though they are local Java method
calls (Schmidt, 2006).


A client can connect to a server object statically if the server interface is known at
build time or the client can use dynamic binding to ascertain the server interface and
construct a call to the server (Scallan, 2012).




                                                                             Page | 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. It’s widely used in large enterprises. One of the most important uses
is in servers that handle a large number of clients, at heavy hit rates, with high
reliability (Object Management Group, 2012).




                                                                         Page | 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 one’s personal life and professional persona. Currently,
Facebook is seen to manage one’s personal life and LinkedIn to maintain a career
and business life persona. The implications are that people are using many different
social networking platforms, usually with a crossover in people. Friends could by
followed on Twitter, “friended” on Facebook, connected on LinkedIn, circled in
Google + and add as chat contact on Gmail.




The concept is to have a web-based middleware platform is a web service to
integrate and manage contacts from multiple web-based email accounts, web-based
social networks, and mobile devices. Having disparate contacts in 8+ places different
web accounts is not an uncommon problem with the shift to cloud based social
media and email services. With all the different social network platforms, one is
likely to have a high volume of contacts, many duplicate but more importantly most
incomplete. Each of these platforms collects different types information about the
person, and an aggregator can compile this all and at the same time eliminate
duplicates.




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




                                              Michelle O’Reilly Contact

             Personal Email                   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                   @michelleoreilly




This would be a service for users working outside the environment of
comprehensive paid CRM like Salesforce of Microsoft Dynamics. The functionality
of this contact aggregation service goes beyond the initial ‘sync’ of contact
information, the tool would be constantly scanning a user’s networks to search for
new additions or updates, moreover a user can add new networks and sync the new
contact information. Additional functionality would include a manual edit function
to   add   new     fields,   for        example   blog     address,   current   city   etc.


This is a two way service and the user would have the option to synchronise the new
contact information back to their email client or to their mobile device. The
synchronisation      could         be       set    to       manual      or      automatic.



                                                                                Page | 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 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 end-
users to be provided for third parties to access their servers. This can be done
without the third party being required to provide a password and username etc.


The resource owner needs to grant permission to facilitate the client gaining access
to server resources there is an inherent security aspect to this protocol which has led
it to be almost the de facto standard for type of process. The access is managed by a
token such a way to allow for a matching ‘shared-secret’ (OAuth, n.d) etc. thus
avoiding the necessity of the resource owner being required to share privileged
information with the client. The token is used to ensure the users credentials are not
shared with the client. Unlike the resource owner credentials, tokens can be issued
with a restricted scope and limited lifetime, and revoked independently (OAuth,
n.d)


The OAuth specification is split into two distinct components. The first component
outlines a redirection-based user-agent process for end-users to authorize client
access to their resources. This is achieved through direct authentication with the
server and provisioning tokens to the client for use with the authentication method
(OAuth, n.d). The second component of the specification outlines a method for
making ‘authenticated HTTP requests using two sets of credentials, one identifying the


                                                                             Page | 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 user’s YouTube and
Facebook account.


These examples encapsulate the fundamental function of this conceptual web based
middleware platform- Easy exchange, synchronisation and export of data across
multiple social network platforms.



Web 2.0


Advanced Internet technology and the associated applications is what is known as
Web 2.0. These applications include blogs, wikis, podcasting, RSS, social networks
and mashups. A significant difference between Web 2.0 and the traditional web is
that of user-generated content with increased collaboration among Internet users.
Web 2.0 is an umbrella term for emerging trends, principles and a core of
technologies that is changing what is on the Web and how the Web actually
operates. Organisations that understand these new technologies and applications
whilst utilising the benefits at an early stage, have the possibility of greatly
improving internal business processes and supply chains. One of the most beneficial


                                                                            Page | 17
advantages is that of improved collaboration with customers, supplier’s internal
users and partners (Lae and Turban, 2008, p.388).



The Characteristics of Web 2.0


   •   Self-publishing, user-created content (Lae and Turban, 2008, p.388-389).
   •   Ability to utilise and tap into the collective intelligence of the users. The more
       users who contribute, the more valuable and popular a Web 2.0 site becomes.
   •   A unique collaborative and communication environment for users.
   •   Data can be made available in new or unintended ways. Web 2.0 data can be
       “mashed up” or remixed, which is often through Web-service interfaces.
   •   Lightweight programming tools and techniques, which allow many more
       users act as developers, for example blogs, wikis, podcasting and RSS.
   •   RSS various protocols is a pub/sub form of middleware
   •   The virtual elimination of software-upgrade cycles that makes everything a
       perpetual work-in-progress or beta and allowing rapid prototyping utilising
       the Web as a platform.
   •   The unique sharing of all media or content.
   •   Networks as platforms that deliver and allow the users to use applications
       entirely through a web browser.
   •   An open source architecture making connectivity to computing resources
       straightforward.
   •   The users own the data on the web site and they exercise control over that
       data.
   •   An architecture of digital democracy and participation encourages the users
       to add value to the application as they utilise it.
   •   The creation of new business models according to Chesbrough (2006 cited in
       Lae and Turban, 2008, p.389).
   •   Social networks have a significant emphasis.
   •   A user-friendly and rich interactive interface that is based on Ajax
       (Asynchronous JavaScript and XML) or on similar frameworks. Ajax is a web

                                                                              Page | 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.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 Microsoft’s XBAP and Mozilla’s XUL (Anderson, 2007,
p.29).


Developers use 3 principle approaches to create Web 2.0 applications, which are
AJAX, Flex and Google Web Toolkit. With AJAX-style programming, web pages are
increasingly responsive as small amounts of data are exchanged with the server and
the entire web page doesn’t require reloading each time a change is requested from
the user. An AJAX application eliminates the start-stop-start-stop interactions by the
introduction of an AJAX engine between the server and user. This renders the user
interface and communicates with the server for the user. The web page is more
interactive, faster and more usable enabling the easier deployment of rich-client Web
applications (Murugesan, 2007, p.38)


Adobe Flex is an application development solution used for the creation of delivery
of cross-platform rich Internet applications (RIAs) on the web. Flex is based on Flash
and it provides a standards-based language and a programming model supporting
common design patterns.          Flex provides a more productive development
environment that is Eclipse-based, it dramatically improves the performance of the
application, supports applications requiring real-time data push and provides more
control over the application’s look and feel. (Ibid).

                                                                            Page | 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 that’s web
based. A blog essentially is a website where users can enter ideas, suggestions
comments etc. Blog posts/blog entries are created in journal style and mostly
displayed in reverse chronological order. Blog entries can contain various elements
such as text, videos or links. An mblog” is written from a mobile device with real-
time blogging known as “liveblogging”. A blog can be private/internal or public.


The “blogsphere” or blogosphere encompasses all blogs as one community or an
interconnected social network. Its possible for any user to publish a blog post
cheaply and easily through a web interface and any other reader can post a comment
on a blog post which are immediately available on the web. Blog posts are very easy
to locate and can be searched for using blog search engines such as Technorati. Blog


                                                                             Page | 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. Google’s blogspot.com has long been a user of Atom another way to move
data that requires middleware to function.

Folksonomy and Social Bookmarking
This refers to user-created taxonomies of information and is an ad hoc classification
scheme web users create as they surf online to categorize the content found there.
Folksonomy utilises collaboratively generated and open-ended labels or tags that
categorise the content. There is no hierarchy therefore they are open ended, a feature
of folksonomy. Folksonomies such as tags for bookmarking (e.g. in Del,icio.us) can
therefore respond rapidly to innovations and changes in how the users categorise
the web content (Murugesan, 2007, p.37).


Social Bookmarking is the process whereby the users bookmark interesting pages,
assigning tags to each one. The users can then share these tagged bookmarks making
social bookmarking an efficient method to gather contextual knowledge (Ibid).
Many of these sites require pub/sub RPC middleware for continuous interactions
with website users, but they also need more robust middleware deployments for
their interactions with other websites.




                                                                            Page | 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 that’s
based on user behaviour. To quote: “The technologies (i.e. ontologies) are used to
describe Web Services semantically, The description language WSDL is extended -
the new language is called DAML-S (DARPA Agent Markup Language - Services) –
see it here via http://www.daml.org” (Pahl, 2012)


The interactive aspect of Web 2.0 to 3.0 encourages the users to return and stay on a
website longer by providing a more compelling experience online (IT Strategists
2011). Looking to the future, for a global semantic web, novel middleware solutions
will require development. Further synergies between the existing semantic
computing and non-semantic technologies will also need to be exploited in
integrated ways (STI Innsbruck, 2008).


The move from Web 2.0 to 3.0 is a trend in a constant state of development as the
online world transforms into the future (IT Strategists 2011). It will require large
amounts of middleware to parse new knowledge from the current interactions of our
Web 2.0 data streams.




                                                                              Page | 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
middleware’s connecting into legacy university information systems, many of which
would never have even had standardized APIs imagined, when built originally and
pulls requested objects back to an apps home servers making use and parsing what


                                                                                   Page | 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 it’s easy and
very common since parsing has been included into the libraries for JSON. JSON web
services well to clients both mobile and traditional computer browsers and remains
very popular with developers working with mobile apps or with mobile application
in mind.

                                                                           Page | 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 Facebook’s
development of Thrift in order to work around some of the scaling issues related to
running mySQL as an example.


Infrastructure support teams and hardware can be very expensive and in a start up
setting this can be problematic. Microsoft Windows (WAMP), Mac OS (MAMP),
Solaris (SAMP), iSeries (iAMP), or OpenBSD (OAMP) or now even Salesforce.com’s
Haruku with Ruby would be considered some of the primary choices traditionally
made. Notice though even these options generally run Apache’s HTTP Server, less
scalable mySQL and PHP (and possibly some PERL or Python mixed in as well.)
Plus various kinds of middleware and for possible OAUTH, and work with mobile
apps and making all the reference calls if you wanted to do other fancy bells and
whistles options.


Determining use of information authorization via the other applications API’s from
all our new user many “accounts” is paramount. For example, does our middleware
make API calls? Does it look at the set of contacts and attempt to match and filter out
duplicates? Why are .csv's files so processor heavy, and what do we use to balance
the load if many .csv files need to be parsed. It has taken this long to create a contact-
matching product that actually works well and has a fre-mium business.


Out of the box solutions vs. custom solutions “What is the gap you are looking at?”
Are out of the box solutions enough? Tough choices are made in start up situations,
as custom coding is sometimes unavoidable.


However, this was a fact of life and the normative case up until recent years. Now
cloud based solutions like Amazon’s AWS and EC2 or Rackspace and Microsoft
Azure and others are offering amazingly scalable options for growing web based

                                                                               Page | 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 company’s infrastructure build out.
Facebook proved that even mySQL limitations could be overcome with a dedicated
development talent and creative construction of its Thrift middleware (The Facebook
Blog, 2007).


Conclusion
Some have argued in recent years like Lori MacVittie at (Highscalability, 2011) that
the model for platform as a service (PaaS) services scalability generally based on
HTTP/REST API integration and heavy reliance ofn AJAX is killing off the need for
many native middlewares.


She is being a bit to critical and hasty. HTTP/RESTful web and AJAX have eased
many server loads, but that does not mean disrespect should be paid to the humble
middleware still distributing the use loads on servers being pounded by page and
other use requests. As the Facebook Thrift example is showing that middleware is
still an important glue to integrate systems. However, she may have a point that the
way developers and infrastructure teams in smaller delployments are dealing less
hands on with decisions with regard to their middleware needs as some of the core
reasons for its use is getting done deeper into the cloud stack. Facebook is massive
and started small and hosting small. Their was no AWS cloud option or easy use
noSQL, they went with what they knew, even if it scaled poorly.


So, middleware is still very among us, but hosted applcations created by developers
for the wb are in the cloud now and the company principles do not have to manage

                                                                              Page | 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-xmlrpc-
in-wordpress/ [Accessed April 2012].


AI3 August, 2010. I Have Yet to Metadata I Didn’t Like [Online]. Available from:
http://www.mkbergman.com/902/i-have-yet-to-metadata-i-didnt-like/ [Accessed
April 2012].


Al-Jaroodi, J. 2010. Middleware Trends for Network Applications. Journal of Network
and Computer Applications. Vol 33 Issue 5, pp 523-524

                                                                              Page | 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-and-
answers/ [Accessed 18 April 2012]


Feld, C. and D. Stoddard (2004). Getting IT right: Towards an Integrated
Organization. Harvard Business Review. Vol. 82 Issue 2, 72-79


Highscalability, 2011. Web 2.0 Killed the Middleware Star [Online]. Available from:
http://highscalability.com/blog/2011/7/26/web-20-killed-the-middleware-
star.html [Accessed 16th April 2012]


Isode Ltd, 2012. XMPP PubSub [Online]. Available from:
http://www.isode.com/whitepapers/xmpp-pubsub.html [Accessed April 2012].


IT Discover, 2012. Middleware an Overview [Online]. Available from:
http://itdiscover.com/links/middleware_an_overview
[Accessed 16th April 2012]


IT Strategists 2011. Web 2.0 to 3.0 defined [Online]. Available from:
http://www.itstrategists.com/Web2-3.aspx [Accessed April 2012].


Jacobsen, H.A. 2007 Understanding Standards (with respect to Middleware) [Online]
Available from:
http://www.eecg.toronto.edu/~jacobsen/courses/ece1770/slides/Standards-in-
Middleware.pdf
[Accessed 16th April 2012).

                                                                               Page | 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]


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 2012

Scallan, Todd of Segue Software 2012. Corba Primer, White paper. [Online] Available
from:
http://www.omg.org/news/whitepapers/seguecorba.pdf
[Accessed 10th April 2012]

Schmidt, D.C. 2006. Distributed Object Computing with CORBA Middleware
[Online] Available from:
http://www.cs.wustl.edu/~schmidt/corba-overview.html
[Accessed 10th April 2012]

STI Innsbruck, 2008. Middleware for the Semantic Web: Enabling a Web of Knowledge and Services
[Online]. Available from: http://events.sti2.at/msw-icsc2008/ [Accessed April 2012].

Szyperski, C. et al, 2002. Component Software: Beyond Object Oriented Programming. 2nd
edition. Great Britain, Pearson Education Limited.

World Wide Web Consortium School, n.d, JSON Tutorial, Accessed 10th April 2012
http://www.w3schools.com/json/default.asp

Stackoverflow, 2011. WSGI middlware for OAUTH Authentication [Online] Available
from:http://stackoverflow.com/questions/4648838/wsgi-middleware-for-oauth-
authentication [Accessed 15th April 2012]

 The Facebook Blog April 2007. Thrift: We're Giving Away Code [Online] Available
from: https://blog.facebook.com/blog.php?post=2261927130 [Accessed 15th April
2012]




                                                                                   Page | 35

Contenu connexe

Similaire à DCUBS MECB middleware in Web 2.0 Project 2012

Production-Ready_Microservices_excerpt.pdf
Production-Ready_Microservices_excerpt.pdfProduction-Ready_Microservices_excerpt.pdf
Production-Ready_Microservices_excerpt.pdfajcob123
 
Introduction to Java Enterprise Edition
Introduction to Java Enterprise EditionIntroduction to Java Enterprise Edition
Introduction to Java Enterprise EditionAbdalla Mahmoud
 
Falcon Security Essay
Falcon Security EssayFalcon Security Essay
Falcon Security EssayJennifer Wood
 
Microservice architecture : Part 1
Microservice architecture : Part 1Microservice architecture : Part 1
Microservice architecture : Part 1NodeXperts
 
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...Tom Robinson
 
Introduction Of Cloud Computing
Introduction Of Cloud ComputingIntroduction Of Cloud Computing
Introduction Of Cloud ComputingMonica Rivera
 
Emerging Trends in Knowledge Management
Emerging Trends in Knowledge ManagementEmerging Trends in Knowledge Management
Emerging Trends in Knowledge ManagementNikesh Narayanan
 
Cloud Computing Without The Hype An Executive Guide (1.00 Slideshare)
Cloud Computing Without The Hype   An Executive Guide (1.00 Slideshare)Cloud Computing Without The Hype   An Executive Guide (1.00 Slideshare)
Cloud Computing Without The Hype An Executive Guide (1.00 Slideshare)Lustratus REPAMA
 
Lock-in issues with PaaS
Lock-in issues with PaaSLock-in issues with PaaS
Lock-in issues with PaaSFederico Conte
 
Cloud computing final_report
Cloud computing final_reportCloud computing final_report
Cloud computing final_reportakshatjain4444
 
Cloud computing: Advantages and challenges in the software industry and mobil...
Cloud computing: Advantages and challenges in the software industry and mobil...Cloud computing: Advantages and challenges in the software industry and mobil...
Cloud computing: Advantages and challenges in the software industry and mobil...Annie Pham
 
Pivotal gem fire_wp_hardest-problems-data-management_053013
Pivotal gem fire_wp_hardest-problems-data-management_053013Pivotal gem fire_wp_hardest-problems-data-management_053013
Pivotal gem fire_wp_hardest-problems-data-management_053013EMC
 
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESS
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESSBENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESS
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESSijccsa
 
Benefits and Challenges of the Adoption of Cloud Computing in Business
Benefits and Challenges of the Adoption of Cloud Computing in BusinessBenefits and Challenges of the Adoption of Cloud Computing in Business
Benefits and Challenges of the Adoption of Cloud Computing in Businessneirew J
 
Seminar Report - Managing the Cloud with Open Source Tools
Seminar Report - Managing the Cloud with Open Source ToolsSeminar Report - Managing the Cloud with Open Source Tools
Seminar Report - Managing the Cloud with Open Source ToolsNakul Ezhuthupally
 
IRJET - Cloud Computing Application
IRJET -  	  Cloud Computing ApplicationIRJET -  	  Cloud Computing Application
IRJET - Cloud Computing ApplicationIRJET Journal
 

Similaire à DCUBS MECB middleware in Web 2.0 Project 2012 (20)

Production-Ready_Microservices_excerpt.pdf
Production-Ready_Microservices_excerpt.pdfProduction-Ready_Microservices_excerpt.pdf
Production-Ready_Microservices_excerpt.pdf
 
Introduction to Java Enterprise Edition
Introduction to Java Enterprise EditionIntroduction to Java Enterprise Edition
Introduction to Java Enterprise Edition
 
Falcon Security Essay
Falcon Security EssayFalcon Security Essay
Falcon Security Essay
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Displacing the Programmers
Displacing the Programmers Displacing the Programmers
Displacing the Programmers
 
Microservice architecture : Part 1
Microservice architecture : Part 1Microservice architecture : Part 1
Microservice architecture : Part 1
 
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...
A Global Web Enablement Framework for Small Charities and Voluntary Sector Or...
 
Cloud view platform-highlights-web3
Cloud view platform-highlights-web3Cloud view platform-highlights-web3
Cloud view platform-highlights-web3
 
Introduction Of Cloud Computing
Introduction Of Cloud ComputingIntroduction Of Cloud Computing
Introduction Of Cloud Computing
 
Emerging Trends in Knowledge Management
Emerging Trends in Knowledge ManagementEmerging Trends in Knowledge Management
Emerging Trends in Knowledge Management
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Cloud Computing Without The Hype An Executive Guide (1.00 Slideshare)
Cloud Computing Without The Hype   An Executive Guide (1.00 Slideshare)Cloud Computing Without The Hype   An Executive Guide (1.00 Slideshare)
Cloud Computing Without The Hype An Executive Guide (1.00 Slideshare)
 
Lock-in issues with PaaS
Lock-in issues with PaaSLock-in issues with PaaS
Lock-in issues with PaaS
 
Cloud computing final_report
Cloud computing final_reportCloud computing final_report
Cloud computing final_report
 
Cloud computing: Advantages and challenges in the software industry and mobil...
Cloud computing: Advantages and challenges in the software industry and mobil...Cloud computing: Advantages and challenges in the software industry and mobil...
Cloud computing: Advantages and challenges in the software industry and mobil...
 
Pivotal gem fire_wp_hardest-problems-data-management_053013
Pivotal gem fire_wp_hardest-problems-data-management_053013Pivotal gem fire_wp_hardest-problems-data-management_053013
Pivotal gem fire_wp_hardest-problems-data-management_053013
 
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESS
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESSBENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESS
BENEFITS AND CHALLENGES OF THE ADOPTION OF CLOUD COMPUTING IN BUSINESS
 
Benefits and Challenges of the Adoption of Cloud Computing in Business
Benefits and Challenges of the Adoption of Cloud Computing in BusinessBenefits and Challenges of the Adoption of Cloud Computing in Business
Benefits and Challenges of the Adoption of Cloud Computing in Business
 
Seminar Report - Managing the Cloud with Open Source Tools
Seminar Report - Managing the Cloud with Open Source ToolsSeminar Report - Managing the Cloud with Open Source Tools
Seminar Report - Managing the Cloud with Open Source Tools
 
IRJET - Cloud Computing Application
IRJET -  	  Cloud Computing ApplicationIRJET -  	  Cloud Computing Application
IRJET - Cloud Computing Application
 

Dernier

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Dernier (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

DCUBS MECB middleware in Web 2.0 Project 2012

  • 1. CA668A E-Commerce Infrastructure: Middleware in Web 2.0 19th April 2012 Deirdre Connolly 11212127 Grainne Malone 55149774 Jennifer Murphy 52595354 James Dellinger 11219889
  • 2. 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
  • 3. 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
  • 4. Conclusion ............................................................................................................................. 31 References .............................................................................................................................. 32 Page | 3
  • 5. Introduction and Objectives The concept of middleware started to gain momentum in the 1990s as an integration and interoperability solution for applications running on heterogeneous computing and communications devices (Mahmoud, 2005). Today more than ever, due to the exponential growth of web based technologies, middleware is an essential service for almost any type of distributed computing environment and networked application. A distributed system, also known as heterogeneous systems, is a collection of computers linked via some network (Pahl, 2012). In this paper we will discus the continued use of various middlewares in the Web 2.0 infrastructure environment. We will discuss and apply knowledge of the theories behind many of the six forms of middleware identified by middleware.org as they pertain to the operations and infrastructure of forms of Web 2.0 browswer based applications. We will look at the role of CORBA and a bit at the history of why middleware has been essential. This paper will discuss AJAX and the use of XML and JSON IDLs and some of their pros and cons for use and how the these two IDLs might be used in a start-up website/mobile application development senario. Contrarary to opinions, like Lori MacVittie, Web 2.0 has not killed the middleware star (Highscalability, 2011). AJAX and the RESTful web environment has reduced the need for some forms of middleware the web was reliant upon in the previous so- called Web 1.0 environment. They are however, now more embbeded into applications or deep into platforms (Google Protocols, Facebook Trhift, for example) or buried deep in cloud platforms to manage server loads. We will explore classic examples that are still with us like XML-RPC and its core role in Pub/Sub for blogging platforms like Wordpress and why Facebook needed to develop its Thrift (now an Apache open source project) middleware to solve a classic problem start- ups running on a LAMP stack, that of scaling mySQL massively. We will discuss why middlewares utilizing OAUTH and to a lesser degree FacebookConnect are a newer form of evolved middleware. Page | 4
  • 6. What is Middleware The objective of Middleware is to ease the task of designing, programming and managing distributed applications by providing a simple, consistent and integrated distributed programming environment. Essentially, Middleware is a distributed software layer, or ‘platform’ which supports the underlying distributed environment with it’s multitude of network technologies, machine architectures, operating systems and programming languages (itdiscover.com 2012) One of the most popular models is object based Middleware in which applications are structured into objects that interact with each other, irrespective of where those applications reside. A classical form of a distributed system is a client server system. The goal of middleware solutions is to allow disparate systems or applications to talk to each other and exchange information without having to rewrite the individual applications or modify the underlying infrastructure. It provides a well- defined, functional framework that is an essential component for almost any networked application. (Al-Jaroodi, 2010). What are the types of middleware? Defined by middleware.org: 1. Asynchronous Remote Procedure Calls (RPC) - client makes calls to procedures running on remote computers but does not wait for a response. If connection is lost, client must re-establish the connection and send request again. High scalability but low recovery, largely replaced by type 2 2. Synchronous RPC – distributed program using this may call services available on different computers – makes it possible to achieve this without undertaking detailed coding (e.g. RMI in Java) 3. Publish/Subscribe – often called push technology, here server monitors activity and sends information to client when available. It is asynchronous, the clients (subscribers) perform other activities between notifications from the server. Useful for monitoring situations where actions need to be taken when particular events occur. Page | 5
  • 7. 4. Message-Oriented Middleware (MOM) – asynchronous – sends messages that are collected and stored until they are acted upon, while the client continues with other processing. 5. Object Request Broker (ORB) - object-oriented management of communications between clients and servers. ORB tracks the location of each object and routes requests to each object. 6. SQL-oriented Data Access - middleware between applications and database servers. Has the capability to translate generic SQL into the SQL specific to the database (From middleware.org, 2008) Objectives The core objective of middleware is to support the design and development of distributed applications in networked environments by providing full integration, interoperability and communication services across all layers of the software architecture (Al-Jaroodi, 2010). So, it’s a layer of services. In effect, it’s the infrastructure software that makes systems integration easier, more efficient and reduces the incidence of errors (Jacobsen, 2007). Conceptually middleware is often thought of as the "glue" between software components or between software and the network. It is the middle layer of services that acts as a Common Gateway Interface (CGI) between a client (browser) on the front end and a database on the back end. In other words, it’s the interface that glues independent systems together and makes them communicate and work well together. It’s also referred to as the ‘plumbing’, the central pipe that translates and facilitates communication between software components. The key objectives of middleware can be summarized as follows • Application portability • Transparency - Middleware operates in the background and so it is transparent to users and programmers. It allows for transparent invocation of remote and distributed objects (applications) irrespective of location. Page | 6
  • 8. Interoperability between distributed application components - Objects implemented on any computer, operating system, or network in different languages and on different platforms can interoperate. • Facilitates software component integration. • Makes the distribution system more programmable and manageable • Offers more flexibility and choice in terms of application development Principles of Middleware Layered Architecture Conceptually, Internet architecture can be characterized as a modular structure containing the following layers • At the lower level is the Network technology substrate composed of telecommunications networks and protocols. • The transport services and standards layer houses the TCP/IP protocol. • The applications layer contains client applications such as the World Wide Web, email, interactive education, audio, video and social media applications. • The Middleware Services layer is the glue that binds the applications to the communications networks. It includes services such as security, authentication, addresses, storage repositories, electronic money and multimedia coordination. (Laudon and Traver, 2010). Conceptually, the "middleware layer" consists of a layer below the application and above the operating system and network layer. Advantages of Middleware One of the core benefits is that it provides a unified horizontal architecture that connects the vertical silos of legacy or distributed systems (Feld and Stoddard, 2004) Because all layers use the TCP/IP communications layer, changes can be made in the network layer without forcing changes in the applications layer and vice versa. Middleware hides most of the details of distribution from application designers thereby freeing up developer’s time. Page | 7
  • 9. According to a framework described by Mascolo et al, (2005) middleware takes care of • Fault tolerance – the ability to recover from errors without halting the entire system. Errors occur because of software or hardware failures. Middleware guarantees the continuation of operations even if one component in the system fails. • Heterogeneity of hardware and software components written using different programming languages, running on different operating systems, executing on different hardware platforms • Scalability – the ability to accommodate an increasing number of users, services and hosts. • Openness to change and modularity so that new components can be easily integrated without disturbing the existing system. • Resource sharing and access control. Middleware services offers greater flexibility, it’s open source and vendor independent. Principles of Distributed Object Technology Common middleware platforms include CORBA, Microsoft’s Distributed COM, and Java RMI. These are object-based models in which applications are structured into objects that interact with each other. Object- oriented software development is based on the idea that • Objects can reside on any computer in a networked system • Other programs can invoke operations by sending messages to the application or computer that hosts these objects • Ideally these programs will not be able to distinguish between local and remote objects (Pahl, 2012) Object based Middleware is based on the following object oriented principles Page | 8
  • 10. Encapsulation Encapsulation can be described as a protective barrier that prevents program code and data from being randomly accessed by other code, defined outside the class. Access to the data and code is tightly controlled by an interface. For this reason, encapsulation is often referred to as data hiding. The main benefit of encapsulation is that it gives maintainability, flexibility, reusability and extensibility to our code. Polymorphism In object oriented programming (OOP) polymorphism refers to the ability to create objects in multiple forms. It means that there can be multiple implementations of an object, which supports the principle of reusability. It is based on the concept of inheritance and class hierarchy in OOP (Anderson & Franceschi, 2012). Language Independence Language bindings in Corba enable soft ware components written in different programming languages to work with each other. In other words, it provides a mapping or translation service that supports multiple computer languages. Corba’s IDL specifies the language bindings. Essentially it means that objects written in one language can be implemented or mapped to different programming languages. We will look at this later in the section on IDL. Component Software Component Software is software that’s developed in self-contained units that can interact with other components to form a functioning system. Component based software supports modular structures that offer benefits such as adaptability, scalability and maintainability. It enables reuse of software parts thereby extending the use and investment in individual units or parts (Szyperski et al, 2002) Common Object Request Broker Architecture CORBA is a specification produced by the Object Management Group (OMG) that addresses interoperability standards in distributed environments. A classic example Page | 9
  • 11. of a distributed system is a client/server system. CORBA is an open standard that represents industry consensus from more than 800 companies. Open standards are by their nature platform independent, collaboratively developed, vendor neutral, and do not depend on any commercial Intellectual property. (Jacobsen, 2007) CORBA ORB Architecture The ORB (Object Request Broker) is the mechanism for communicating client requests to remote target objects. It can be conceptualized as a communication bus between client and server objects. Interfaces must be specified in the CORBA standard Interface Definition Language (IDL). IDL Interface Definition Language IDL is comprised of stubs on the client side and skeletons on the server side. The IDL interface describes the object’s functionality and how a potential client can invoke a method of the object, even if the object is not written in the same language as the client object. In effect, IDL acts as a programming language translator by taking an IDL description of an object and translating it into a specific set of language bindings (Pahl, 2012). An IDL interface description is then mapped using an IDL compiler to native languages such as Java, C, C++ and others. This allows each programmer to write source code independently in the most suitable language. For example, a server object implemented in C++ can be accessed by a Java applet. The applet programmer invokes methods on the server as though they are local Java method calls (Schmidt, 2006). A client can connect to a server object statically if the server interface is known at build time or the client can use dynamic binding to ascertain the server interface and construct a call to the server (Scallan, 2012). Page | 10
  • 12. (Source: Schmidt, 2006) CORBA Implementations Middleware systems such as CORBA implementations have been successful for organizations to create interoperability involving current and legacy systems. CORBA is useful because of the easy way that it integrates components from so many vendors. It’s widely used in large enterprises. One of the most important uses is in servers that handle a large number of clients, at heavy hit rates, with high reliability (Object Management Group, 2012). Page | 11
  • 13. Principles and Architecture of a Web-Based Middleware Platform Based on these objectives, develop ideas and concepts for a Web-based middleware platform. In particular address the following: interface definition languages, protocols, common services and facilities, development of software in a wide-area environment. Concept With the social networks being a dominant form of communication, a high percentage of our communication from both social and work life is conducted online. Currently there is no almighty platform which incorporates both whilst at the same time separating one’s personal life and professional persona. Currently, Facebook is seen to manage one’s personal life and LinkedIn to maintain a career and business life persona. The implications are that people are using many different social networking platforms, usually with a crossover in people. Friends could by followed on Twitter, “friended” on Facebook, connected on LinkedIn, circled in Google + and add as chat contact on Gmail. The concept is to have a web-based middleware platform is a web service to integrate and manage contacts from multiple web-based email accounts, web-based social networks, and mobile devices. Having disparate contacts in 8+ places different web accounts is not an uncommon problem with the shift to cloud based social media and email services. With all the different social network platforms, one is likely to have a high volume of contacts, many duplicate but more importantly most incomplete. Each of these platforms collects different types information about the person, and an aggregator can compile this all and at the same time eliminate duplicates. Page | 12
  • 14. Below is an example of the information that could be compiled on a person, which is connected with across all platforms. Michelle O’Reilly Contact Personal Email 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 @michelleoreilly This would be a service for users working outside the environment of comprehensive paid CRM like Salesforce of Microsoft Dynamics. The functionality of this contact aggregation service goes beyond the initial ‘sync’ of contact information, the tool would be constantly scanning a user’s networks to search for new additions or updates, moreover a user can add new networks and sync the new contact information. Additional functionality would include a manual edit function to add new fields, for example blog address, current city etc. This is a two way service and the user would have the option to synchronise the new contact information back to their email client or to their mobile device. The synchronisation could be set to manual or automatic. Page | 13
  • 15. This is the functionality of the service however the focus of this report is on the web- based middleware aspect. Although, this is not the focus it is important to lay out the functions the service provides to understand the choices made for the supporting technologies. Interface Definition Language As discussed in the introduction, the purpose of an interface definition language is to define the capabilities of a distributed service along with a common set of data types for interacting with those distributed services. (Arnold, 2008) It is used because it meets four key objectives as listed below (Arnold, 2008); 1. Language Independence: 2. Distributed service specification: 3. Definition of complex data types: 4. Hardware Independence JavaScript Object Notation (JSON) The IDL chosen for this conceptual web-based middleware is JSON. JSON is fast becoming the IDL of choice and the preferred alternative to XML due its suitability for mobile devices. It is described as the ‘The Fat-Free Alternative to XML’ on the JSON website, JSON promises the same benefits of interoperability and openness, but without the disadvantages. XML is not well suited to data-interchange, whereas JSON is described as a lightweight text-data interchange format, it is this attribute that makes it suitable for our conceptual design as the primary exchange is text based. As with all Interface Design Languages, JSON is language and platform independent. Like XML it is "self-describing" and hence human readable. It uses JavaScript syntax for describing data objects. JSON parsers and JSON libraries exists for many different programming languages. (W3C, n.d) Page | 14
  • 16. Protocols Our conceptual web-based middleware is centred on multiple social networks and extracting data from the same. Therefore, the protocol needs to have the capability of authorising the service to pull data from the users social networks account. A protocol named OAuth was chosen as apart from its widespread use and popularity it is fit for this purpose. OAuth allows for access to be gained to resources stored on a server, the case of our concept these ‘resources’ would be the users contact-information, this can be done by clients, on the behalf of the end-user. OAuth also allows for authorisation by end- users to be provided for third parties to access their servers. This can be done without the third party being required to provide a password and username etc. The resource owner needs to grant permission to facilitate the client gaining access to server resources there is an inherent security aspect to this protocol which has led it to be almost the de facto standard for type of process. The access is managed by a token such a way to allow for a matching ‘shared-secret’ (OAuth, n.d) etc. thus avoiding the necessity of the resource owner being required to share privileged information with the client. The token is used to ensure the users credentials are not shared with the client. Unlike the resource owner credentials, tokens can be issued with a restricted scope and limited lifetime, and revoked independently (OAuth, n.d) The OAuth specification is split into two distinct components. The first component outlines a redirection-based user-agent process for end-users to authorize client access to their resources. This is achieved through direct authentication with the server and provisioning tokens to the client for use with the authentication method (OAuth, n.d). The second component of the specification outlines a method for making ‘authenticated HTTP requests using two sets of credentials, one identifying the Page | 15
  • 17. 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
  • 18. software development and deployment (in particular Web Services and the Semantic Web, but also others you find relevant). As mentioned this would be a service for users working outside the environment of comprehensive paid CRM like SalesForce of Microsoft Dynamics. It would have a wide scope of potential applications and would have mass-market appeal and commercialisation prospects. This web-based middleware concept could easily be utilised for other applications scenarios. For example, for people signing up for a new social network platform, this middleware could be used to find contacts that are already part of that network and automatically connect and update any missing data. Moreover, the data exchange does not have to be limited to text data, media could be exchange between multiple platforms, for example an automatic export function between a user’s YouTube and Facebook account. These examples encapsulate the fundamental function of this conceptual web based middleware platform- Easy exchange, synchronisation and export of data across multiple social network platforms. Web 2.0 Advanced Internet technology and the associated applications is what is known as Web 2.0. These applications include blogs, wikis, podcasting, RSS, social networks and mashups. A significant difference between Web 2.0 and the traditional web is that of user-generated content with increased collaboration among Internet users. Web 2.0 is an umbrella term for emerging trends, principles and a core of technologies that is changing what is on the Web and how the Web actually operates. Organisations that understand these new technologies and applications whilst utilising the benefits at an early stage, have the possibility of greatly improving internal business processes and supply chains. One of the most beneficial Page | 17
  • 19. advantages is that of improved collaboration with customers, supplier’s internal users and partners (Lae and Turban, 2008, p.388). The Characteristics of Web 2.0 • Self-publishing, user-created content (Lae and Turban, 2008, p.388-389). • Ability to utilise and tap into the collective intelligence of the users. The more users who contribute, the more valuable and popular a Web 2.0 site becomes. • A unique collaborative and communication environment for users. • Data can be made available in new or unintended ways. Web 2.0 data can be “mashed up” or remixed, which is often through Web-service interfaces. • Lightweight programming tools and techniques, which allow many more users act as developers, for example blogs, wikis, podcasting and RSS. • RSS various protocols is a pub/sub form of middleware • The virtual elimination of software-upgrade cycles that makes everything a perpetual work-in-progress or beta and allowing rapid prototyping utilising the Web as a platform. • The unique sharing of all media or content. • Networks as platforms that deliver and allow the users to use applications entirely through a web browser. • An open source architecture making connectivity to computing resources straightforward. • The users own the data on the web site and they exercise control over that data. • An architecture of digital democracy and participation encourages the users to add value to the application as they utilise it. • The creation of new business models according to Chesbrough (2006 cited in Lae and Turban, 2008, p.389). • Social networks have a significant emphasis. • A user-friendly and rich interactive interface that is based on Ajax (Asynchronous JavaScript and XML) or on similar frameworks. Ajax is a web Page | 18
  • 20. development technique utilised for the creation of interactive web applications. • To quote: “HTTP as the underlying protocol layer of XML as the metalanguage in which all other languages and formats will be defined This basic layer corresponds to CORBA IDL plus RPC (Remote Procedure Call).” (Pahl, 2012) • Increased productive organisation communication with for example, improved search, user authority and links according to McAfee (2006 cited in Lae and Turban, 2008, p.389). (Lae and Turban, 2008, p.388-389). • OAuth has enabled seamless web experiences for users where they can flow data across websites without having to share their passwords (O’Reilly Media, Inc. and UMB TechWeb, 2010). • To Quote: “Representational State Transfer and RESTful Web services rely on HTTP benefit: more lightweight as they can avoid SOAP-based overheads disadvantage: no formally specified interface (as in WSDL) one-to-one mapping between create, read, update, and delete (CRUD) operations and HTTP methods.” (Pahl, 2012) Important Technology and Services of Web 2.0 A key driver of Web 2.0 development has been the emergence of a new generation of web- related standards and technologies. The delivery of Web 2.0 services and applications has been driven by the widespread adoption of the group of technologies known as Ajax. For users of the traditional HTML-based websites the low dynamism has frustrated users. With the introduction of Ajax success has emerged. Utilising this technology, a portion of a web page can be dynamically reloaded in real-time creating an impression of more natural and richer applications with responsive interfaces (Anderson, 2007, p.27-p.28). Page | 19
  • 21. The Ajax technologies include HTML/XHTML which are a standards based method of presenting information within a browser. CSS is also utilised and Document Object Model (DOM) a method to dynamically control the document. XML and XSLT are utilised for data manipulation and interchange. XMLHttpRequest is used for asynchronous data retrieval from the server, also used is JavaScript or ECMA script (Ibid). The most important of the alternatives to Ajax utilise Flash, the ubiquitous graphics plug-in from Adobe, which allows sophisticated and quick-to-download vector graphics and animation to display in the browser window (Anderson, 2007, p.28). There are also several emerging technologies focusing on displaying rich graphics in the browser window such as Microsoft’s XBAP and Mozilla’s XUL (Anderson, 2007, p.29). Developers use 3 principle approaches to create Web 2.0 applications, which are AJAX, Flex and Google Web Toolkit. With AJAX-style programming, web pages are increasingly responsive as small amounts of data are exchanged with the server and the entire web page doesn’t require reloading each time a change is requested from the user. An AJAX application eliminates the start-stop-start-stop interactions by the introduction of an AJAX engine between the server and user. This renders the user interface and communicates with the server for the user. The web page is more interactive, faster and more usable enabling the easier deployment of rich-client Web applications (Murugesan, 2007, p.38) Adobe Flex is an application development solution used for the creation of delivery of cross-platform rich Internet applications (RIAs) on the web. Flex is based on Flash and it provides a standards-based language and a programming model supporting common design patterns. Flex provides a more productive development environment that is Eclipse-based, it dramatically improves the performance of the application, supports applications requiring real-time data push and provides more control over the application’s look and feel. (Ibid). Page | 20
  • 22. 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
  • 23. 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
  • 24. Really Simple Syndication (RSS) RSS is comprised of a family of web feed formats that is used for syndicating the content from web pages or blogs. It is an XML file that summarises links and information items to the information sources. By utilising XMPP PubSub, (a form of middleware) an open protocol, social networking need not be constrained to closed systems where all the users need to belong; sharing across boundaries would be possible (Isode Ltd, 2012). Users are informed of updates to websites or blogs of interest to them. Blog or web RSS feeds typically link to the word, ‘subscribe.’ It is generally a small rectangle in orange or the letters XML or RSS in an orange box in a corner of the page. Aggregator programs or feed reader can check a list of feeds for the user and display any updated articles they found. Feed readers or aggregators are built into popular web browsers and feeds can easily be added to a web page. Atom is a syndication specification for resolving issues of multiple incompatible RSS versions (Murugesan, 2007, p.35). Blogs A blog, short for web log is a powerful two-way communication tool that’s web based. A blog essentially is a website where users can enter ideas, suggestions comments etc. Blog posts/blog entries are created in journal style and mostly displayed in reverse chronological order. Blog entries can contain various elements such as text, videos or links. An mblog” is written from a mobile device with real- time blogging known as “liveblogging”. A blog can be private/internal or public. The “blogsphere” or blogosphere encompasses all blogs as one community or an interconnected social network. Its possible for any user to publish a blog post cheaply and easily through a web interface and any other reader can post a comment on a blog post which are immediately available on the web. Blog posts are very easy to locate and can be searched for using blog search engines such as Technorati. Blog Page | 23
  • 25. posts can link to other ones and thus interesting posts travel from site to site. Through linked blogs communities can form. Blog readers are able to syndicate blogs and if a user subscribes to a blog they will know when it is updated which saves search time. Many companies utilise blogs to engage with employees, customers and the public (Murugesan, 2007, p.35). A popular site for blogging is WordPress, which utilises XML-RPC as a very powerful method to manage a blog. By using XML-RPC users can for example post comments, articles, read category lists and posts (ActiveBlogging.com/Pankhurst, 2006-2012). Wordpress is not alone, Drupal and other content management systems on the web use this form of RPC middlware for nearly realtime data exchange among any number of sites, individuals or to make search bots aware of new content. Google’s blogspot.com has long been a user of Atom another way to move data that requires middleware to function. Folksonomy and Social Bookmarking This refers to user-created taxonomies of information and is an ad hoc classification scheme web users create as they surf online to categorize the content found there. Folksonomy utilises collaboratively generated and open-ended labels or tags that categorise the content. There is no hierarchy therefore they are open ended, a feature of folksonomy. Folksonomies such as tags for bookmarking (e.g. in Del,icio.us) can therefore respond rapidly to innovations and changes in how the users categorise the web content (Murugesan, 2007, p.37). Social Bookmarking is the process whereby the users bookmark interesting pages, assigning tags to each one. The users can then share these tagged bookmarks making social bookmarking an efficient method to gather contextual knowledge (Ibid). Many of these sites require pub/sub RPC middleware for continuous interactions with website users, but they also need more robust middleware deployments for their interactions with other websites. Page | 24
  • 26. Semantic Web The transition of Web 2.0 to Web 3.0, the semantic web, will result in a transformation of the web for users by a complete change in the way the users interact with the data. Online social networks are a primary aspect of this transformation providing a richer engagement and interactive dialogue exchange on the website. RSS feeds and Share buttons allow the users interact with content customising the website which supports a helpful user experience. A lot of the interest in engaging web content management systems stems from the capacity of these systems to automate and provide a robust, more engaging experience that’s based on user behaviour. To quote: “The technologies (i.e. ontologies) are used to describe Web Services semantically, The description language WSDL is extended - the new language is called DAML-S (DARPA Agent Markup Language - Services) – see it here via http://www.daml.org” (Pahl, 2012) The interactive aspect of Web 2.0 to 3.0 encourages the users to return and stay on a website longer by providing a more compelling experience online (IT Strategists 2011). Looking to the future, for a global semantic web, novel middleware solutions will require development. Further synergies between the existing semantic computing and non-semantic technologies will also need to be exploited in integrated ways (STI Innsbruck, 2008). The move from Web 2.0 to 3.0 is a trend in a constant state of development as the online world transforms into the future (IT Strategists 2011). It will require large amounts of middleware to parse new knowledge from the current interactions of our Web 2.0 data streams. Page | 25
  • 27. (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
  • 28. Develop a scenario for Web-based software development – • What are the development activities involved? • Deciding which platform to use, Java RMI, use of server • What infrastructure support is needed? • Will you use HTTP? UDDI? • A diagram illustrating the platform including infrastructure and activities might help here. For example, if we create this web service for checking contacts information across multiple user accounts (email, social, and mobile) and making a comparison of the data found in these accounts. First, we may need to register our new service into the Universal Description, Discovery, and Integration Service (UDDI directory), providing it with the proper The Web Services Description Language (WSDL) data describing our available services and how they are supposed to be used. These accounts can then search the UDDI directory to find out how to use our interface. Once our interface is found, the users account can now communicate with our service because we have provided a well-defined contact request interface that is registered wit the UDDI. This is still an important middleware function at very basic level. What is WSDL why did we choose to use it? The Web Services Description Language WSDL is another important IDL to mention that allows service providers to describe the most basic format of Web service requests over different protocols it defines what a service does, where is resides, and how or when it can and needs to be properly invoked (Pahl, 2012). An example of heavy user of more traditional middleware development application example would be an attempt to “mobilize” college experience. Server to server middleware’s connecting into legacy university information systems, many of which would never have even had standardized APIs imagined, when built originally and pulls requested objects back to an apps home servers making use and parsing what Page | 27
  • 29. 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
  • 30. online influence measurement services (Klout, PeerIndex, and SharedIQ) and third party comment systems (disqus, intensedebate, etc) operate on via OAUTH (using one of its API compliant middlewares like a wsgi for example if your site is based in Python.) (Stackoverflow, 2011) or FacbebookConnect middleware for users ease and reduce password management and data kept by the service locally reducing server loads and needs. This is also very common for newspaper and other media websites. What are the development activities involved? Once a concept is developed. In this case we will continue down the example of a free contact management provider we began scoping out above. First we would attempt to assemble the best development team available. Second we would need to decide which language the website would be written in and why. PHP, PERL, Python, Ruby, Java RMI (which is a sever side Java not in need of the JVM the RMI is the integrated server-side java and middleware for remote calls (RPC) and is CORBA implementation compliant architecture. This is generally going to be based on the purpose and goals of the site. Also a consideration is the kinds of middlewares needed for a product to function according to the specified needs and goals imagined by the designers. For our example we will go with at least PHP 5.4 with its native JSON support. Which IDL to use is always is a tough choice. With XML now ubiquitous and other IDLs using the xml schemes but not being XML. Knowing XML is key as a developer even if you do chose not to go with it. JSON is one that is popular for mobile. It is much faster and better to parse data and runs much lighter weight on servers processing power. JSON sockets well into AJAX (which we would also use for our development) and the updated browser side JavaScript libraries. JSON is light for mobile but still strongly descriptive. JSON parsing use to be real problem, but now it’s easy and very common since parsing has been included into the libraries for JSON. JSON web services well to clients both mobile and traditional computer browsers and remains very popular with developers working with mobile apps or with mobile application in mind. Page | 29
  • 31. Infrastructure support needs should be considered early on and dependents on what development choices you have made. In the start-up setting the right available talent wins out over specific platforms. Traditionally this has meant greater middleware needs down the road of a concept becomes greatly scaled, think Facebook’s development of Thrift in order to work around some of the scaling issues related to running mySQL as an example. Infrastructure support teams and hardware can be very expensive and in a start up setting this can be problematic. Microsoft Windows (WAMP), Mac OS (MAMP), Solaris (SAMP), iSeries (iAMP), or OpenBSD (OAMP) or now even Salesforce.com’s Haruku with Ruby would be considered some of the primary choices traditionally made. Notice though even these options generally run Apache’s HTTP Server, less scalable mySQL and PHP (and possibly some PERL or Python mixed in as well.) Plus various kinds of middleware and for possible OAUTH, and work with mobile apps and making all the reference calls if you wanted to do other fancy bells and whistles options. Determining use of information authorization via the other applications API’s from all our new user many “accounts” is paramount. For example, does our middleware make API calls? Does it look at the set of contacts and attempt to match and filter out duplicates? Why are .csv's files so processor heavy, and what do we use to balance the load if many .csv files need to be parsed. It has taken this long to create a contact- matching product that actually works well and has a fre-mium business. Out of the box solutions vs. custom solutions “What is the gap you are looking at?” Are out of the box solutions enough? Tough choices are made in start up situations, as custom coding is sometimes unavoidable. However, this was a fact of life and the normative case up until recent years. Now cloud based solutions like Amazon’s AWS and EC2 or Rackspace and Microsoft Azure and others are offering amazingly scalable options for growing web based Page | 30
  • 32. start-ups to not have to invest in dedicated infrastructure for a good part of the early growth phase. Many of these platforms are even robust enough to offer variously priced stack options like the ones above or on more scalable competitors to mySQL as noSQL has been gaining in popularity in the last few years. However, infrastructure-as-a-service (IaaS), and virtual computing infrastructure (storage, CPU) cloud solutions are now available to provide private or public solutions, despite some security concerns and are popular, because of the prices they offer, for what had been a very expensive part of a new company’s infrastructure build out. Facebook proved that even mySQL limitations could be overcome with a dedicated development talent and creative construction of its Thrift middleware (The Facebook Blog, 2007). Conclusion Some have argued in recent years like Lori MacVittie at (Highscalability, 2011) that the model for platform as a service (PaaS) services scalability generally based on HTTP/REST API integration and heavy reliance ofn AJAX is killing off the need for many native middlewares. She is being a bit to critical and hasty. HTTP/RESTful web and AJAX have eased many server loads, but that does not mean disrespect should be paid to the humble middleware still distributing the use loads on servers being pounded by page and other use requests. As the Facebook Thrift example is showing that middleware is still an important glue to integrate systems. However, she may have a point that the way developers and infrastructure teams in smaller delployments are dealing less hands on with decisions with regard to their middleware needs as some of the core reasons for its use is getting done deeper into the cloud stack. Facebook is massive and started small and hosting small. Their was no AWS cloud option or easy use noSQL, they went with what they knew, even if it scaled poorly. So, middleware is still very among us, but hosted applcations created by developers for the wb are in the cloud now and the company principles do not have to manage Page | 31
  • 33. as much of tradition middleware or hardware. This has made web based startup costs a bit cheaper for the early scaling period. It is still their just being handled by infrastructure teams and developers at Amazon. The other thing that has changed is the level of interoperbility and ubiquitousness of APIs is growing as well as the standardized ways for developers to tap into them without always needing to build custom or using off the shelf middleware. This is a testement to the ideals of CORBA as the grandfather of server-side heterogenous information systems interoperability and server load management. Other examples are the level at which various middlwares are deeply integrated into web applications, think Facebook ‘Thrift,’ Google and ‘Google Protocols,’ Zimbra mail and ‘SOAP’ and Wordpress and ‘RPC-XML’ specifically but there are countless others. However, with the rise of OAUTH, FacebookConnect and others, with an eye to a future including deeper integration of the “web of all things,” (when everything getting networked and feeding data back to us fridge, cars, ovens, and etc) middleware has far from seen its last days as an important part of bringing together development and infrastructure decisions that organisations and developers find themselves dealing with. References ActiveBlogging.com/Pankhurst, 2006-2012. How To Turn On XML-RPC in WordPress [Online]. Available from: http://activeblogging.com/info/how-to-turn-on-xmlrpc- in-wordpress/ [Accessed April 2012]. AI3 August, 2010. I Have Yet to Metadata I Didn’t Like [Online]. Available from: http://www.mkbergman.com/902/i-have-yet-to-metadata-i-didnt-like/ [Accessed April 2012]. Al-Jaroodi, J. 2010. Middleware Trends for Network Applications. Journal of Network and Computer Applications. Vol 33 Issue 5, pp 523-524 Page | 32
  • 34. 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-and- answers/ [Accessed 18 April 2012] Feld, C. and D. Stoddard (2004). Getting IT right: Towards an Integrated Organization. Harvard Business Review. Vol. 82 Issue 2, 72-79 Highscalability, 2011. Web 2.0 Killed the Middleware Star [Online]. Available from: http://highscalability.com/blog/2011/7/26/web-20-killed-the-middleware- star.html [Accessed 16th April 2012] Isode Ltd, 2012. XMPP PubSub [Online]. Available from: http://www.isode.com/whitepapers/xmpp-pubsub.html [Accessed April 2012]. IT Discover, 2012. Middleware an Overview [Online]. Available from: http://itdiscover.com/links/middleware_an_overview [Accessed 16th April 2012] IT Strategists 2011. Web 2.0 to 3.0 defined [Online]. Available from: http://www.itstrategists.com/Web2-3.aspx [Accessed April 2012]. Jacobsen, H.A. 2007 Understanding Standards (with respect to Middleware) [Online] Available from: http://www.eecg.toronto.edu/~jacobsen/courses/ece1770/slides/Standards-in- Middleware.pdf [Accessed 16th April 2012). Page | 33
  • 35. 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] O’Reilly Media, Inc. and UMB TechWeb, 2010. Evolving the Social Web with OAuth 2.0 [Online]. Available from: Page | 34
  • 36. http://www.web2expo.com/webexsf2010/public/schedule/detail/14347 [Accessed April 2012]. Pahl, C 2012. Lecture slides from MECB program 2012 Scallan, Todd of Segue Software 2012. Corba Primer, White paper. [Online] Available from: http://www.omg.org/news/whitepapers/seguecorba.pdf [Accessed 10th April 2012] Schmidt, D.C. 2006. Distributed Object Computing with CORBA Middleware [Online] Available from: http://www.cs.wustl.edu/~schmidt/corba-overview.html [Accessed 10th April 2012] STI Innsbruck, 2008. Middleware for the Semantic Web: Enabling a Web of Knowledge and Services [Online]. Available from: http://events.sti2.at/msw-icsc2008/ [Accessed April 2012]. Szyperski, C. et al, 2002. Component Software: Beyond Object Oriented Programming. 2nd edition. Great Britain, Pearson Education Limited. World Wide Web Consortium School, n.d, JSON Tutorial, Accessed 10th April 2012 http://www.w3schools.com/json/default.asp Stackoverflow, 2011. WSGI middlware for OAUTH Authentication [Online] Available from:http://stackoverflow.com/questions/4648838/wsgi-middleware-for-oauth- authentication [Accessed 15th April 2012] The Facebook Blog April 2007. Thrift: We're Giving Away Code [Online] Available from: https://blog.facebook.com/blog.php?post=2261927130 [Accessed 15th April 2012] Page | 35