180 likes | 190 Views
Upgrading the Web: Software Services. Stephen Gorton. Wouldn’t it be good if…. … we can build our own applications to do what we want, when we want? … we don’t have to write large amounts of complicated code to get our applications? … we can share our applications with other people?
E N D
Upgrading the Web: Software Services Stephen Gorton
Wouldn’t it be good if… • … we can build our own applications to do what we want, when we want? • … we don’t have to write large amounts of complicated code to get our applications? • … we can share our applications with other people? • … we could use our home computers to do this, without expensive and time-consuming upgrades? • … we could combine the best parts of our favourite programs to make our own personalised “super system”?
What if I want to book a holiday? • So many things to consider: • Where, when and how long for; • Transport to the airport; • Flights; • Transfers at the destination; • Car hire; • Accommodation; • Currency. • Let alone: • Applying for leave from your boss; • Rearranging any appointments; • Setting your voicemail message; • Setting your automated email reply; • Sending the kids to Grandma’s? • Online tools have often helped us with some of this: • In fact, we can do a lot of things from the above left hand list. • But we cannot use these facilities for doing the above right hand list. • Wouldn’t it be useful if we could have a system that would allow us to do all of this? Moreover, what if the system was based on our needs and able to change according to what we want of it?
So what do we need to do? And in what order? • Make a few rules for ourselves, for example: • We would prefer to pay more for a better hotel • The dates we decide are not negotiable • What kind of car do we want (hatchback, MPV or 4x4) • We don’t want to travel at night. • Decide the following: • Where to go • When to go • How long for • How much to spend • Get a few quotes from different travel agencies. • Choose the first two that come back and rank them in order of our rules. • Try and book the first one. If it fails try and book the second. • When it is confirmed, we can change all our personal arrangements. • We can also change our currency if needed, at any one of a number of vendors who offer the same rate.
Arrange them in a process Task 4: Choose primary and secondary choice start end Task 4 Task 2: Decide on where, when, how much and how long Task 3: Get some quotes Task 7: Exchange currency Make our rules (also called “policies”) Task 1 Task 3 Task 5 Task 7 Task 6: Make personal arrangements Task 5: Book the primary option, or secondary if the primary fails Task 2 Task 6 But actually, we will probably apply the same rules each time, so let’s assume that this step has already happened.
But getting some quotes is not so straightforward 2 • Process: • Find sources; • Query sources • simultaneously; • Continue when 2 • sources have • responded. Find our sources, including a trusted and preferred supplier Task 3.1.1 Execute these branches in parallel Task 3.2.1 Task 3.2.2 Task 3.2.3 And when at least two branches have finished overall Continue only when the first branch has completed
Even getting a single quote is not straightforward! Accommodation Flights Kid’s Activities Bicycle Hire Transport to airport Car Hire at destination Transfers at destination Calculate Total Cost
The process at-a-glance start Rank Accommodation Accommodation Accommodation Decide when Decide duration Flights Flights Flights Kid’s Activities Kid’s Activities Kid’s Activities Transport to airport Transport to airport Transport to airport 2 Bicycle Hire Bicycle Hire Bicycle Hire Car Hire at destination Car Hire at destination Car Hire at destination Transfers at destination Transfers at destination Transfers at destination Decide where Decide how much Rank Book Option A Book Option B 2 Calculate Total Cost Calculate Total Cost Calculate Total Cost Kids’ activities not on offer? Get Appointment Change Voice message Reschedule Change currency at A Change Currency at B Phone Grandma Arrange Email Replies Compensate Notify Appointee Compensate 2 3 end
So the whole process is complicated • This is the result of the process design. • We haven’t even started writing code!! • Wouldn’t it be easier if the software was already there, and all we had to do was match up each task to a bit of software? Perhaps from the comfort of your own home, from your own computer, with no installation of new software required. • Enter Web Services…
The Internet as we see it • Websites, websites and more websites. • More complicated websites are emerging, e.g. www.bbc.co.uk, www.amazon.co.uk. These websites are more than static web pages. • A simple request-response mechanism from your computer to the web server (the computer that holds the web pages). • This mechanism is called HTTP (HyperText Transfer Protocol). • But there’s more available than meets the eye!
What is a “Web Service”? • A web service is a software entity that exists somewhere in the Internet, making use of the web as the communication platform. • i.e. Web Services communicate over HTTP, just as web pages do. • A web service can be located through a directory mechanism (something like a Yellow Pages for web services): • i.e. Web Services are discoverable. • This can be done through technologies such as UDDI. • A web service can tell you how one should use it (like an instruction booklet): • i.e. Web Services are describable. • This can be done using technologies such as WSDL. • A set of web services can be orchestrated together to create a bigger service whose function is the sum of its parts: • i.e. Web Services are composable. • This can be done through technologies such as BPEL or WS-CDL. • Web services are not dependent on a client (e.g. you and me) for their existence. They can remain persistently available: • i.e. Web Services are loosely-coupled.
Service-oriented Computing • Web Services are a popular implementation of the software engineering paradigm known as “Service-oriented Computing” (SoC). The design of software in such an organisational manner is called Service-oriented Architecture (SoA). • The approach of SoC is geared towards these software services. Each service plays the part of a component of a wider system. If the system only requires one component, then only one service is required. There is the potential to build many different systems, it’s just a case of organising (or orchestrating) the component parts. • From Wikipedia: • “A Service-oriented architecture is a software architecture that uses loosely coupled software services to support the requirements of business processes and software users”. • More general than Web Services, SoA principles include that a service must be loosely-coupled, self-describing, discoverable, composable and based on open standards.
What’s the benefit? • Web Services are like doors to someone else’s system. They expose functionality. • It’s like a door to a house. A house may have many doors. Each door may have a different design. You can even add your own door of your own design. • What’s more, you might need to design your own door, according to how you will use it. • e.g. games consoles, PCs, PDAs, mobile phones, digital television interface or normal telephones. Web-based GUI
If Web Services are so useful then … • … we can create our own, customised applications, using someone else’s functionality. All we do is handle data sent to and received from the Web Service. • … we potentially already have access to the software we need for our business process. All we need to do is match up the task to an appropriate service, but even then we might be able to find a web service to do that for us.
Did you know? • That Amazon has a Web Service interface? • Amazon lets you use its functionality with your front end, rather than through the website. • That Google has a Web Service interface? • Similar as Amazon, Google opens its functionality to those people with their own front-ends. • Ebay, Flickr, BBC and Yahoo also offer their functionality through a web service. • One such Masters project at University of Leicester had the objective of combining the functionality of Amazon and Google in one application, called AmaGoogle. • The term “Amazoogle” is found often on the web.
Our research • SoA is a relatively recent attempt at co-operative computing, but is industry-driven. Therefore there is a lack of substance to the ideas behind it. • SENSORIA (Software Engineering for Service-oriented Overlay Computers) aims to develop a novel, pragmatic approach to SoC, aiming to bring mathematically well-founded modelling technology within the reach of service-oriented software designers and developers. • InContext will develop a novel scientific approach focused on a new blend of human collaboration and service-oriented systems.
Past, Present and Future • The past: • Non-interoperable software systems; • Market leaders pulling in different directions; • Consumer relies on websites, web applications and commercial off-the-shelf software (COTS). • The present: • Market leaders pulling in the same (or similar) directions; • Large intra-enterprise web services; • Business processes for enterprise; • Small inroads by consumer programmers. • The future? • Lots of web services; • End-user authored business processes; • Business processes successfully combined with software services; • Coordination mechanisms for systems involving many services; • Customised applications for the end-user?
To conclude "This is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning“* (of interoperable, collaborative software).** Thank you *Sir Winston Churchill, at the Lord Mayor's Luncheon, Mansion House, London, November 10, 1942 **(italics mine!)