Reference no: EM132372702
Architecture and System Integration Assignment -
Case Study: easyJet - Technology Strategy
Founded in 1995 by British Cypriot entrepreneur Stelios Haji-Loannou, easyJet is a low-cost European airline based in London United Kingdom. EasyJet expanded into Europe with acquisitions including Swiss charter TEA Basel AG and British Go-Fly in the early 2000s. EasyJet outlined a renewed digital strategy in 2012 which gave it a competitive advantage in increased revenues, increased connection with passengers and cutting costs. In a September 2018 shareholder statement easyJet said:
"Over the past three years easyJet has been investing in its commercial IT platform which has delivered revenue benefits through significant improvement in the customer facing website and seating capability, as well as improvements in underlying resilience and control systems. However, easyJet has now made the decision to change its approach to technology development through better utilisation and development of existing systems on a modular basis, rather than working towards a full replacement of our core commercial platform. As a result of this change in approach, we are recognising a non-headline charge of around GBP65 million relating to IT investments and associated commitments we will no longer require. easyJet will continue to invest in its digital and eCommerce layers that will enable it to continue to offer a leading innovative, revenue enhancing and customer friendly platform." (easyJet trading statement, 28 September 2018).
Part of easyJet technology strategy is to integrate Cloud services such as Microsoft Azure into its existing system. This is a modular approach where, instead of totally rewriting the whole system (at great expense), Cloud services can be integrated with the existing system to provide additional functionality. An example is where easyJet wanted to add aircraft passenger seat allocation into its existing Reservation system. Because the existing system could not accommodate the infrastructure required for the additional functionality, and instead of redeveloping the whole system on the cloud, easyJet created and integrated a Cloud service to work alongside the reservations system. EasyJet continue to integrate digital services such as smartphone and wearable apps, third party applications such as Apple Pay, Flight Tracker, predictive maintenance, volcanic ash detection (AVOID) and many others.
After evaluating various platforms, easyJet decided to adopt a Service Oriented Architecture (SOA) for its future IT infrastructure. easyJet executives would like to gain a deeper understanding of:
- Computing and storage infrastructure design,
- Information integration,
- Application and Service Integration, and
- Technologies behind Application and Service Integration including a small specific demonstration of these technologies along with a brief explanation of the concepts and principles of how it works.
There are 2 parts to this Assignment:
Part 1 - Integration Demo
easyJet have been looking for ways to help passengers to plan their journeys. Your Integration Demo will demonstrate a basic passenger journey planning microservice using service-oriented architecture. You will use a Google Maps Mashup to plot a passenger journey (including a number of 'stop-overs'). Your Google Maps Mashup will capture the endpoint coordinates (along with the name the passenger chooses for their journey) and send them to your microservice for storage. You will also be able to recall a stored passenger journey from your microservice and replot it on your Google Map Mashup. Please follow the instructions carefully. There are two major components in the demo system:
1. Microservice server demo. In this demo, you are required to build a RESTful Web service which supports two services:
- 'saveJourney' query from the client browser similar to '/saveJourney?journey=[xml object]'. This server Web Service will accept an XML object with similar format to Figure 1. As part of the python service you are required to:
i. accept the XML object and extract the journey name which will become an xml file name (e.g. 'Journey 1.xml'),
ii. Store the journey information in an .xml file using the Journey name as the file name.
- 'getJourney' query from the client browser similar to '/getJourney?jouney=[journey name]' will retrieve the passenger journey information from the server:
i. The journey name will be accepted, and the corresponding xml file will be retrieved and returned as an XML object to the Google Maps Mashup.
The Python Bottle framework is required for this implementation. A Python scrip file with the name 'microservice.py' will contain this RESTful Microservice Demo.
2. Mashup demo. In this demo, you are required to build a html Google Maps Mashup application which accepts a journey name as the input. There three functions (buttons on the html page) are required after the html page is initiated with a raw map:
Function 1 - Clicking on the Map will create markers and polylines between markers as you continue selecting locations. These polylines between markers will simulate a passenger journey for which you will input a name, collect the coordinates and their order into an XML object, and send to your microservice via your AJAX web service.
Function 2 - you will need to be able to clear the map back to its raw newly initiated state.
Function 3 - you will be able to type a journey name into the input and retrieve a passenger journey from your microservice and populate the map with the saved journey:
i. This function will retrieve an XML object from your microservice via another AJAX web service.
ii. once your AJAX service receives the object it will need to extract the individual latitude and Longitude coordinates from the XML object and push them into the MVCArray.
A HTML file 'plan_journey_map.html' should be implemented. In this file, a text field is provided at the page top to accept passenger's route name input. In addition, three buttons are required to implement the three functions.
Very Important Note: For ease of demonstration to easyJet executives, your code must be self-contained and run easily in PyCharm. In addition to using Standards based HTML, JavaScript and Python, the Python 'Bottle' module is the only additional framework you should use. ALL required files must be provided with your submission and should not require any extra installation.
Part 2 - Integration Report
In addition to the above Demo code you are required to include a Report Based on the above case study explaining the key concepts for:
- The demo design and implementation (including instructions on running your code).
- Information Management and Integration
- Application and Data Storage Infrastructure design, and
- Application and Service Integration
Please use the following outline in your report:
1. Introduction
2. Information Management and Integration - Discuss and design strategies to integrate the multiple data sources developed and used by different teams for various business units and departments.
3. Application and Data Storage Infrastructure Design - Discuss various cloud options and their suitability. Design a cloud infrastructure strategy.
4. Application and Service Integration - There are many different types of applications and services coexisting in easyJet, including legacy applications, internal Web services, and external Web services. Some external services are provided by business partners and others are from public service providers such as Google Map and Google Search. Discuss and design service and application integration strategies.
5. RESTful Web services - Explain RESTful Web services and how they were applied in your Demo.
6. Mashups - Explain Mashup principles and how it was applied in your Demo.
7. Conclusion
Assignment Guidelines -
This assignment will take a number of weeks to complete and will require a good understanding of application and information integration technologies for successful completion. It is imperative that students take heed of the following points in relation to doing this assignment:
1. Ensure that you clearly understand the requirements for the assignment - what has to be done and what are the deliverables.
2. If you do not understand any of the assignment requirements - Please ASK the lecturer or your tutor.
3. Each time you work on any aspect of the assignment reread the assignment requirements to ensure that what is required is clearly understood.
Attachment:- Assignemnt File and Case Study.rar