Reuse-based & Choreography-based Distributed Systems Reuse-based Software Engineering Distributed Systems Mar Marco Autili BPMN2 Choreographies basics University of L’Aquila Invited Seminar Lecture № 1 Course: Advanced Service-oriented Software Engineering 08 May 2017 – University of L’Aquila (IT)
Where do we come from? (FP7 project) (H2020 project) Automated Synthesis of Dynamic and Secured Choreographies for the Future Internet (H2020 project) 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 2
CHOReVOLUTION • Title: Automated Synthesis of Dynamic and Secured Choreographies for the Future Internet • Follow up FP7 EU project CHOReOS • Period: January 2015 - January 2018 • Site: http://www.chorevolution.eu 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 3
Outline • Reuse-based Service-oriented Distributed systems • Setting the context • Development scenario (high-level view) • BPMN2 Choreographies basics 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 4
Outline • Re Reuse use-ba based ed Ser ervice ce-or oriented D Distribut uted s systems • Setting the context • Development scenario (high-level view) • BPMN2 Choreographies basics 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 5
Distributed systems • Virtually all large computer-based systems are now distributed systems • “… a collection of independent computers that appears to the user as a single coherent system” • Information processing is distributed over several computers rather than confined to a single machine • Distributed Software Engineering is therefore very important for enterprise computing systems 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 6
Distributed systems 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 7
Distributed system characteristics • Resource sharing • Sharing of hardware and software resources • Openness • Use of equipment and software from different vendors • Concurrency • Concurrent processing to enhance performance • Scalability • Increased throughput by adding new resources • Fault tolerance • The ability to continue in operation after a fault has occurred 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 8
Ideal Distributed System 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 9
Distributed systems issues • Distributed systems are more complex than systems that run on a single processor • Complexity arises because different parts of the system are independently managed as is the network • There might be no single authority in charge of the system so top-down control is impossible 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 10
Ports and sockets 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 11
RPC communication 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 12
Message passing • Message-based interaction normally involves one component creating a message that details the services required from another component • Through the system middleware, this is sent to the receiving component • The receiver parses the message, carries out the computations and (if needed) creates a response message for the sending component with the required results • In a message-based approach, it is not always necessary for the sender and receiver of the message to be aware of each other. They simply communicate with the middleware 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 13
Synchronous messaging 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 14
The evolution of computing paradigms Towards Service-oriented Computing (SOC) - Re Req.mts Ch Chan ange SO SOC - Dy Dynami misms ms - Evo Evolutio ion Services Components Objects Functions/ procedures Monolithic - St Static ic - Fr Frozen Abstraction Abs - Fr Frozen Re Req.mts Mo Modul dularity for Reuse & RO Re ROI 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 15
Software reuse • Software Engineering has been more focused on original development but ... • it is now recognised that to achieve better software, more quickly and at lower cost, we need a design process that is based on Sys ystem ematic S c Software R e Reu euse • Nowadays, in most engineering disciplines, systems are designed by composing existing “software” that have already been used/experimented in other systems 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 16
Software reuse • There has been a major switch to reuse-based development over the past 10 years. • Indeed, over the past 20 years, many techniques have been developed to support software reuse • The move to reuse-based development has been in response to demands for • lower software production costs • lower maintenance cost • faster delivery of systems • increased software quality • More and more companies see their software as a valuable asset • Companies are promoting reuse to increase their return on software investments • One of the more recent trends is that standards, such as Web eb Ser ervice e st stan andar ards , have made it easier to develop general services and reuse them across a range of applications 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 17
Reuse-based software engineering Sof oftware uni units ts tha that t ca can be re reused ma may y be of f ra radica cally y diffe ffere rent sizes System reuse • Complete systems, which may include several application programs may be reused. Application reuse An application may be reused either by incorporating it without change into other or by • developing application families. Servic Se vice re reuse Standards, such as Web Service standards, have made it easier to develop general services • and reuse them across a range of applications. Component reuse Components of an application from sub-systems to single objects may be reused. • Object and function reuse Small-scale software components that implement a single well-defined object or function • may be reused. This form of reuse, based around standard libraries, has been common for the past 40 years. 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 18
Implementing software reuse Design Architectural patterns patterns Application Software product Application ERP systems frameworks lines system integration Systems of Configurable Legacy system systems application systems wrapping Component-based Model-driven Service-oriented software engineering engineering systems Aspect-oriented Program Program software engineering generators libraries 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 19
The Encyclopedia of SOA FACTS SOA is being used in the developing world to solve hunger. Entire populations will be fed on • future business value SOA can write and compile itself • SOA is not complex. You are just dumb • SOA in a Nutshell is 7,351 pages spread over 10 volumes • • One person successfully described SOA completely, and immediately died Another person successfully described SOA completely, and was immediately outsourced • Larry Ellison once died in a terrible accident, but was quickly given SOA. He came back to life, • built a multibillion dollar software company, and now flies fighter jets • SOA is the only thing Chuck Norris can't kill http://www.guj.com.br/t/soa-facts/6917 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 20
Web services • A web service is an ins instanc nce of a more re gene nera ral (hig highe her r level) le l) notion of a a service : • “An act or performance offered by one party to another. Although the process may be tied to a physical product, the performance is essentially intangible and does not normally result in ownership of any of the factors of production” • The es ce of a service, therefore, is that the provision essen ence of the service is ind independ ndent nt of the he applic icatio ion n using ing th the service • Service providers can develop specialized services and offer these to a range of service users from different organizations 08/05/2017 Marco Autili - Invited Seminar Lecture - Course: Advanced Service-oriented Software Engineering 21
Recommend
More recommend