SOA Part 1 Lecture 1 Dr Withalm SOA

  • Slides: 103
Download presentation
SOA Part 1 Lecture 1 Dr. Withalm SOA Bratislava

SOA Part 1 Lecture 1 Dr. Withalm SOA Bratislava

Lectures at the University of Bratislava/Autumn 2017 03. 10. 2017 Lecture 1 The long

Lectures at the University of Bratislava/Autumn 2017 03. 10. 2017 Lecture 1 The long Way from OO to SOA & WEB- Services 17. 10. 2017 Lecture 2 Semantic WEB & SOA-Technological Basis 14. 11. 2017 Lecture 3 SOA-Basing on J 2 EE & SOA-Focus on Business Processes 21. 11. 2017 Lecture 4 B 2 B Frameworks and related Standards 28. 11. 2017 Lecture 5 WEB 2. 0 & GRID & Cloud Computing 2 08. 03. 2021 Dr. Withalm SOA Bratislava

Today’s Agenda § Software Architecture § Programming Paradigm § CORBA § Application Server §

Today’s Agenda § Software Architecture § Programming Paradigm § CORBA § Application Server § TP Monitor § EJB § J 2 EE § WEB Services § Example § Standards 3 08. 03. 2021 Dr. Withalm SOA Bratislava

Software Architecture § Software architecture is a coherent set of abstract patterns guiding the

Software Architecture § Software architecture is a coherent set of abstract patterns guiding the design of each aspect of a larger software system. § Software architecture underlies the practice of building computer software. In the same way as a building architect sets the principles and goals of a building project as the basis for the draftsman's plans, so too, a software architect or systems architect sets out the software architecture as a basis for actual system design specifications, per the requirements of the client. 4 08. 03. 2021 Dr. Withalm SOA Bratislava

Software Architecture Examples § There are many common ways of designing computer software modules

Software Architecture Examples § There are many common ways of designing computer software modules and their communications, among them: § Distributed computing § Client-server § Peer-to-peer system § Three-tier model § Service-oriented architecture 5 08. 03. 2021 Dr. Withalm SOA Bratislava

Distributed Computing § There are many different types of distributed computing systems and many

Distributed Computing § There are many different types of distributed computing systems and many challenges to overcome in successfully architecting one. The main goal of a distributed computing system is to connect users and resources in a transparent, open, and scalable way. § This includes simple client-server system and extends up to grid computing. Grid computing uses the resources of many separate computers connected by a network (usually the internet) to solve large-scale computation problems. 6 08. 03. 2021 Dr. Withalm SOA Bratislava

Scalability § § 7 A scalable system is one that can easily be altered

Scalability § § 7 A scalable system is one that can easily be altered to accommodate changes in the amount of users, resources and computing entities affected to it. Scalability can be measured in three different dimensions: § Load scalability — A distributed system should make it easy to expand to accommodate heavier or lighter loads. § Geographic scalability — A geographically scalable system is one that maintains its usefulness and usability, regardless of how far apart its users or resources are. § Administrative scalability — No matter how many different organizations need to share a single distributed system, it should still be easy to use and manage. Some loss of performance may occur in a system that allows itself to scale in one or more of these dimensions. 08. 03. 2021 Dr. Withalm SOA Bratislava

Client-Server § Client/Server is a scalable architecture, whereby each computer or process on the

Client-Server § Client/Server is a scalable architecture, whereby each computer or process on the network is either a client or a server. Server software generally, but not always, runs on powerful computers dedicated for exclusive use to running the business application. § Client software on the other hand generally runs on common PCs or workstations. Clients get all or most of their information and rely on the application server for things such as configuration files, stock quotes, business application programs, or to offload compute-intensive application tasks back to the server. 8 08. 03. 2021 Dr. Withalm SOA Bratislava

Client-Server (cont. ) §Properties of a server: §Passive (Slave) §Waiting for requests §On requests

Client-Server (cont. ) §Properties of a server: §Passive (Slave) §Waiting for requests §On requests serves them and send a reply §Properties of a client: §Active (Master) §Sending requests §Waits until reply arrives 9 08. 03. 2021 Dr. Withalm SOA Bratislava

Client-Server (cont. ) Web Server 10 08. 03. 2021 Directory Server Print Server Dr.

Client-Server (cont. ) Web Server 10 08. 03. 2021 Directory Server Print Server Dr. Withalm Database Server SOA Bratislava File Server Mail Server

Peer-to-Peer § A peer-to-peer (or P 2 P) computer network is a network that

Peer-to-Peer § A peer-to-peer (or P 2 P) computer network is a network that relies on the computing power and bandwidth of the participants in the network rather than concentrating it in a relatively few servers. § A pure peer-to-peer file transfer network does not have the notion of clients or servers, but only equal peer nodes that simultaneously function as both "clients" and "servers" to the other nodes on the network. § 11 A typical example for a non peer-to-peer file transfer is an FTP server. One user uploads a file to the FTP server, then many others download it, with no need for the uploader and downloader to be connected at the same time. 08. 03. 2021 Dr. Withalm SOA Bratislava

Three-Tier Model § Three-tier is a client-server architecture in which the user interface, functional

Three-Tier Model § Three-tier is a client-server architecture in which the user interface, functional process logic ("business rules"), data storage and data access are developed and maintained as independent modules, most often on separate platforms. User Interface Tier 12 08. 03. 2021 Dr. Withalm Application Tier Data Tier SOA Bratislava

N-Tier Model User Interface Tier 13 08. 03. 2021 Dr. Withalm Data Tier Application

N-Tier Model User Interface Tier 13 08. 03. 2021 Dr. Withalm Data Tier Application Tier SOA Bratislava

Programming Paradigm Real World Analogy Object Orientation: Wire together to build a small device

Programming Paradigm Real World Analogy Object Orientation: Wire together to build a small device Component Orientation: Put together to build a complex device Service Orientation: It is there and running, simply connect and use. Aligned with fine-grained business objects Reuse of source code based on the notion of types Increased maintainability and modifiability of the program code through encapsulation Aligned with mid-grained business functions Reuse based on prefabricated, executable code Increased maintainability and modifiability of the application through composition Aligned with coarse-grained business processes Flexibility and extensibility through composition, federation, and orchestration of services Increased interoperability and scalability through loose-coupling 14 08. 03. 2021 Dr. Withalm Service Consumer Back Office Service SOA Bratislava Print Service Archiving Service

CORBA - OMG / 1 § Largest SW-Consortium § more than 800 members §

CORBA - OMG / 1 § Largest SW-Consortium § more than 800 members § System providers as: Siemens, IBM, HP, DEC, Oracle. . . § End users as: Boeing, AT&T, Daimler Benz. . . § From all branches as Telecom, Health, Finance. . . 15 08. 03. 2021 Dr. Withalm SOA Bratislava

Distributed Objects, Corba Style / 2 § Clients don’t need to know - where

Distributed Objects, Corba Style / 2 § Clients don’t need to know - where the distributed object resides - what operating system it executes on - how the server object is implemented § clients only know - the interface its server object publishes - this interface serves as a building contract between clients and servers 08. 03. 2021 Dr. Withalm SOA Bratislava

IDL / 1 § it provides no implementation details § You can use IDL

IDL / 1 § it provides no implementation details § You can use IDL to define - API’s concisely - covering important issues such as error handling § IDL-specified methods can be written and invoked from any language - that provides CORBA bindings § Programs deal with CORBA objects - using native language constructs 08. 03. 2021 Dr. Withalm SOA Bratislava

Marhalling § § § The process of gathering data and transforming it into a

Marhalling § § § The process of gathering data and transforming it into a standard format § before it is transmitted over a network so that the data can transcend network boundaries. In order for an object to be moved around a network § it must be converted into a data stream that corresponds with the packet structure of the network transfer protocol. This conversion is known as data marshalling. Data pieces are collected in a message buffer before they are marshaled. When the data is transmitted, the receiving computer converts the marshaled data back into an object. Data marshalling is required § when passing the output parameters of a program written in one language § as input to a program written in another language. 18 08. 03. 2021 Dr. Withalm SOA Bratislava

IDL / 6 C C++ Java Ada COBOL Other IDL IDL IDL Client Server

IDL / 6 C C++ Java Ada COBOL Other IDL IDL IDL Client Server ORB 08. 03. 2021 Dr. Withalm SOA Bratislava

Structure of CORBA / 3 What exactly is an ORB / 3 Object Implementation

Structure of CORBA / 3 What exactly is an ORB / 3 Object Implementation Client Interface Repository Dynamic Invocation Client IDL Stubs ORB Interface Static Skeletons Dynamic Skeleton Invocation Object Request Broker Core 08. 03. 2021 Dr. Withalm SOA Bratislava Object Implementation Adapter Repository

Structure of CORBA / 17 Method Invocations / 1 Object Implementation Client Dynamic Invocation

Structure of CORBA / 17 Method Invocations / 1 Object Implementation Client Dynamic Invocation Server IDL Stubs Client IDL Stubs Request Object Request Broker Core 08. 03. 2021 Dr. Withalm SOA Bratislava Object Adapter

Naming Service / 1 Object Request Broker Naming Persistence Life Cycle Properties Concurrency Collections

Naming Service / 1 Object Request Broker Naming Persistence Life Cycle Properties Concurrency Collections Security Trader Externalization Events Transactions Query Relationships Time Change Licensing Management Common Object Services 22 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Strenghts/1 § CORBA was designed for integrating applications in heterogeneous environments § containing applications

CORBA-Strenghts/1 § CORBA was designed for integrating applications in heterogeneous environments § containing applications written in different programming languages § running on different operating systems and different machines. § CORBA was designed specifically to address § the integration problems faced in a typical IT environment. 23 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Strenghts/2 § CORBA achieves this level of interoperability § by specifying program interfaces in

CORBA-Strenghts/2 § CORBA achieves this level of interoperability § by specifying program interfaces in an implementation-neutral interface definition language (IDL). § IDL can be mapped to almost any required programming language § C, C++, FORTRAN, COBOL, Ada, Java, . . § allowing you to develop your programs in the language of your choice. § CORBA also specifies the Internet Inter-ORB Protocol (IIOP) § as a common communications protocol for TCP/IP networks. § Just as IDL hides programming language differences § IIOP enables different applications to communicate with each other § through a standard protocol § hiding platform and network differences. 24 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Weaknesses/1 § There is a lack of products supporting IIOP client side. § IIOP

CORBA-Weaknesses/1 § There is a lack of products supporting IIOP client side. § IIOP don't reach the adoption expected by OMG consortium from the main software vendors § And there are few Programming and administrator software tools based on CORBA IIOP § Loose coupling is a difficult feature in CORBA world: § Client and Server sides are strongly coupled with static and binary IIOP messages § it is unfeasible to add some header or information dynamically in the IIOP messages between the client and the server § There is no notion of intermediary node in the CORBA model § even if a distributed object can be in client, server or both roles § So loose coupling and agility in the system are difficult or even unfeasible. 25 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Weaknesses/2 § IIOP is not firewall friendly and not opened on all firewalls §

CORBA-Weaknesses/2 § IIOP is not firewall friendly and not opened on all firewalls § Network administrators have been very reluctant to open ports on firewalls. § If the HTTP protocol has gain lot of facilities to be allowed from the beginning, § it is not the case for IIOP network protocol and CORBA had suffered this situation. § CORBA programming is quite complex § CORBA client programming is somewhere quite complex to master, with complex APIs, § The necessary skills to develop CORBA Clients or CORBA Servers are important, § even if the code is always based on template or framework that can be reused. 26 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Competition § Microsoft COM and DCOM § Sun Micro System EJB 27 08. 03.

CORBA-Competition § Microsoft COM and DCOM § Sun Micro System EJB 27 08. 03. 2021 Dr. Withalm SOA Bratislava

CORBA-Conclusion § Last CORBA specification releases are from 2002 with the addition of CORBA

CORBA-Conclusion § Last CORBA specification releases are from 2002 with the addition of CORBA 3. 0 and CORBA CCM. § Currently there are other tendencies in the market § but since there are existing applications running with CORBA § they should be considered in order to be integrated. § Efforts on integrating CORBA IDL and Web Services WSDL are on the roadmap of some of the main CORBA players. § This will offer (thanks to idl 2 wsdl converters) translations from CORBA description to Web Service description 28 08. 03. 2021 Dr. Withalm SOA Bratislava

Application servers/2 ORBs/1 - feature varying degrees of complexity § the simplest ones make

Application servers/2 ORBs/1 - feature varying degrees of complexity § the simplest ones make it possible to connect § client applications and are called ORBs § distributed objects § make it easy to find and use objects distributed on clients § are less well suited for transaction controlled environments with high data volumes 29 08. 03. 2021 Dr. Withalm SOA Bratislava

Application servers/3 ORBs/2 - provide a communication backbone for distributed objects § but normally

Application servers/3 ORBs/2 - provide a communication backbone for distributed objects § but normally not the robust infrastructure required § to support large numbers of users and mission-critical operations § application developers must access services such as transaction, persistence, multi-threading on their own 30 08. 03. 2021 Dr. Withalm SOA Bratislava

What is a TP monitor ? § TP-monitors are managing programs (or processes) that

What is a TP monitor ? § TP-monitors are managing programs (or processes) that operate on data § complex applications are broken into pieces of code called transactions § Using these transactions, a TP-monitor can get pieces of software that don’t know anything about each other to act in total unison 08. 03. 2021 Dr. Withalm SOA Bratislava

What does a TP Monitor do ? / 1 § runs classes of applications

What does a TP Monitor do ? / 1 § runs classes of applications that could service thousands of clients § provides an environment that interjects itself between the remote clients and servers § manages transactions § routes them across systems 08. 03. 2021 Dr. Withalm SOA Bratislava

What does a TP Monitor do ? / 2 § load balance their execution

What does a TP Monitor do ? / 2 § load balance their execution § restart them after failures § can manage transactional resources on a single server or across multiple servers § can cooperate with other TP monitors in federated arrangements 08. 03. 2021 Dr. Withalm SOA Bratislava

Why a Server Operating System needs a TP Monitor 08. 03. 2021 Dr. Withalm

Why a Server Operating System needs a TP Monitor 08. 03. 2021 Dr. Withalm SOA Bratislava

Distributed Transactions / 1 Be Transactional g En in Client d Transactional Server Transactional

Distributed Transactions / 1 Be Transactional g En in Client d Transactional Server Transactional method propagation Recoverable Server involvement Object Request Broker Transaction Context Transaction Service 35 08. 03. 2021 Dr. Withalm SOA Bratislava

Component transaction monitors - are application servers that have developed from a mixture of

Component transaction monitors - are application servers that have developed from a mixture of § § - traditional TP monitors and ORB technologies provide infrastructure able to automatically manage § transactions, object distribution, multi-threading, security, persistence, and resources (=Corba services) 36 08. 03. 2021 Dr. Withalm SOA Bratislava

Server-side components /2 - Business is always moving, products, processes, and goals of a

Server-side components /2 - Business is always moving, products, processes, and goals of a company are bound to change in the course of times - If it is possible to encapsulate the software that models a business into a business object, the software will then be flexible, scalable, and reusable and thus be able to develop on its own in line with the business 37 08. 03. 2021 Dr. Withalm SOA Bratislava

Server-side components /3 - - 38 A server-side component model defines § an architecture

Server-side components /3 - - 38 A server-side component model defines § an architecture for developing distributed business objects and combines § the accessibility of distributed object systems with § the changeability of the business logic in the form of an object Server-side component models are used on the application servers of the middle layer § that manage the components at runtime and make them available to remote clients 08. 03. 2021 Dr. Withalm SOA Bratislava

Server-side components /5 - 39 Depending on the component model, the server administrator is

Server-side components /5 - 39 Depending on the component model, the server administrator is able to set the behavior of a server-side component § with respect to transaction, security, and even persistence § by assigning certain values to these attributes 08. 03. 2021 Dr. Withalm SOA Bratislava

Server-side components /6 - When new products are being developed and corporate processes change

Server-side components /6 - When new products are being developed and corporate processes change § it is possible to re-assemble, change, and extend server-side components in such a way § that the business system will reflect these changes - A business system can be regarded as a collection of server-side components § that model concepts such as customers, products, reservations, warehouses, etc. 40 08. 03. 2021 Dr. Withalm SOA Bratislava

Server-side components /7 - - 41 Each component is like a building block that

Server-side components /7 - - 41 Each component is like a building block that can be combined with other components to form a business logic § Products can be stored in a warehouse or delivered to a customer § A customer can make a reservation or buy a product You can assemble or disassemble components, use them in other components, and change their definitions A business system based on server-side components is § flexible because it consists of objects, and § accessible because the components can be distributed 08. 03. 2021 Dr. Withalm SOA Bratislava

Enterprise Bean/1 Component - There are two different types § Entity Bean § Session

Enterprise Bean/1 Component - There are two different types § Entity Bean § Session Bean 42 08. 03. 2021 Dr. Withalm SOA Bratislava

Enterprise Bean/2 Entity Beans - model business entities that can be expressed in the

Enterprise Bean/2 Entity Beans - model business entities that can be expressed in the form of nouns § for example: customer, piece of equipment, entry in stock list, location, . . . thus model objects from the real world § persistent data records in some kind of database represent data and behavior constitute a system with a reusable and consistent interface to the data held in a database behavior typically focuses on applying business rules § directly linked to the modification of data moreover, Entity Beans may contain relations to other entities are shared by many clients 43 08. 03. 2021 Dr. Withalm SOA Bratislava

Enterprise Bean/3 Session Beans/1 - - 44 are an extension of the client application

Enterprise Bean/3 Session Beans/1 - - 44 are an extension of the client application and are responsible for managing processes or tasks § for example: they are typically used to manage certain activities such as a reservation; in doing so, they rely on Entity Beans All these operations are reflected in the database by actions being performed on the corresponding Entity Beans work on behalf of the client and manage operations or tasks provide the right place for business logic are not persistent like an Entity Bean § nothing is being mapped onto a database § nothing is being saved in between sessions 08. 03. 2021 Dr. Withalm SOA Bratislava

Sessions Beans/2 - - 45 work with Entity Beans, data, and other resources §

Sessions Beans/2 - - 45 work with Entity Beans, data, and other resources § in order to control a business process the business process is the key issue in every business system § defines how entities interact with one another § in order to model the actual business govern tasks and resources § but do not themselves represent any data 08. 03. 2021 Dr. Withalm SOA Bratislava

Sessions Beans/3 - - 46 reduce the number of network connections the client needs

Sessions Beans/3 - - 46 reduce the number of network connections the client needs § improves the system performance One method call in client applications results in a multitude of method calls on the server § the network registers only the traffic caused by the one method call for the Session Bean reduce the number of stubs used on the client side § which in turn saves memory space and CPU time at the client 08. 03. 2021 Dr. Withalm SOA Bratislava

Stateful Session Beans/1 - 47 manage a conversation state while being used by a

Stateful Session Beans/1 - 47 manage a conversation state while being used by a client are not written to the database, but kept in memory § as long as a client uses a session § the client can make conversation with the bean § while the bean's individual methods are invoked § the state of the Session Bean may change § such changes may affect future method calls 08. 03. 2021 Dr. Withalm SOA Bratislava

Stateful Session Beans/2 - - - 48 The conversation state remains active only as

Stateful Session Beans/2 - - - 48 The conversation state remains active only as long as § a client actively uses the bean § if the client terminates or releases the Session Bean, § the conversation state is lost for ever § are bound to a client for their entire lifetime manage the state between method calls § this is referred to as conversation state § representing the continuous conversation between client and stateful Session Bean the integrity of this conversation state must be § retrained during the whole time it takes to execute the service for the client do not participate in instance pooling instead an activation is used 08. 03. 2021 Dr. Withalm SOA Bratislava

Stateless Session Beans - - 49 do not have a conversation state at all

Stateless Session Beans - - 49 do not have a conversation state at all each method is completely independent of all other methods and uses only the data § passed on as parameters provide the best performance of all bean types § with respect to throughput and use of resources § only a few stateless Session Beans are needed § to serve hundreds, or even thousands, of clients do not manage any state between method calls each method call is therefore § independent of all others, and § executes its task without the use of instance variables any stateless Session Bean can § serve requests from any EJB object of a suitable type § allows the container § to swap bean instances in and out between the client's method calls 08. 03. 2021 Dr. Withalm SOA Bratislava

Classes and interfaces/1 - In order to implement an Enterprise Bean it is necessary

Classes and interfaces/1 - In order to implement an Enterprise Bean it is necessary to define two interfaces and one or two classes § § 50 Remote interface Home interface Bean class Primary key class 08. 03. 2021 Dr. Withalm SOA Bratislava

Containers/1 - manages a multitude of interactions between a bean and its server -

Containers/1 - manages a multitude of interactions between a bean and its server - is responsible for providing a uniform interface between bean and server - creates new instances of beans - ensures that the server stores instances correctly 51 08. 03. 2021 Dr. Withalm SOA Bratislava

Resource management and primary services - - 52 How is it possible to manage

Resource management and primary services - - 52 How is it possible to manage millions of distributed objects at the same time? § resource management is extremely important § how to control § how distributed objects use memory and processing time Currently, 6 primary services are supported § Multi-threading § Transaction management § Persistence § Object distribution § Naming § Security 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/1 § The J 2 EE platform (Java 2 Platform, Enterprise Edition)

J 2 EE/1 § The J 2 EE platform (Java 2 Platform, Enterprise Edition) is a software framework that provides technologies for the design and development of multi-tier business applications. § It also provides services that ease the development of business applications, § and enable the developer to concentrate § on the business functions he has to implement, not on the technologies involved. 53 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/2 54 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/2 54 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/3 § The J 2 EE platform uses a multi-tiered distributed application

J 2 EE/3 § The J 2 EE platform uses a multi-tiered distributed application model. § This means application logic is divided into components according to function § and the various application components that make up a J 2 EE application § are installed on different machines depending on which tier § in the multi-tiered J 2 EE environment the application component belongs. 55 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/4 § The J 2 EE Application parts shown in above figure

J 2 EE/4 § The J 2 EE Application parts shown in above figure are presented in J 2 EE Application Components § Client tier components run on the client machine § Web tier components run on the J 2 EE server § Business tier components run on the J 2 EE server § Enterprise information system (EIS) tier software runs on the EIS server 56 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/5 § § This figure can also be used for representing the

J 2 EE/5 § § This figure can also be used for representing the architecture of the J 2 EE platform § where the architecture defines a client tier, a middle tier and a back-end tier. The client tier supports different types of clients § from applications and applets to thin web-based and mobile clients. The middle tier provides infrastructure for the business services § and is subdivided into the web tier and the Enterprise Java. Beans (EJB) tier. § The web tier provides services related to the web and thin clients. § The EJB tier provides the environment for executing business logic components. The back-end tier provides enterprise services such as § data persistence § but can also host other existing enterprise information systems (EIS). 57 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/6 Strenghts § J 2 EE works on any platform with a

J 2 EE/6 Strenghts § J 2 EE works on any platform with a compliant Java VM § and a compliant set of required platform services § EJB container, JMS service, etc. . § All of the specifications that define the J 2 EE platform are published and reviewed publicly § and numerous vendors offer compliant products and development environments. § The different J 2 EE integration technologies can be used in different integration problems 58 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/7 Weakness § There's a gap between J 2 EE's strength in

J 2 EE/7 Weakness § There's a gap between J 2 EE's strength in designing applications § and the need to manage the composite nature of newer programs § that have real-time requirement § you will need to use Integrated transactions, message routing, integrity, wrappers, bridges and access tools to external applications, etc. § J 2 EE is a single-language platform. § Calls from/to objects in other languages are possible through CORBA § but CORBA support is not a ubiquitous part of the platform 59 08. 03. 2021 Dr. Withalm SOA Bratislava

J 2 EE/8 Competitors § Main competitor is Microsoft. Net platform 60 08. 03.

J 2 EE/8 Competitors § Main competitor is Microsoft. Net platform 60 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/1 § A car rental company has a database that indicates § What

Web-Services Example/1 § A car rental company has a database that indicates § What kind of cars are available at each location along with the published rental rate § § 61 Compact, full-size, luxury, etc. There is an application function that § When provided with the location and class of car § Returns availability and price. 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/2 § Originally, this function would have been contained wholly § Within a

Web-Services Example/2 § Originally, this function would have been contained wholly § Within a booking application § Used by the company‘s agents to respond § 62 To telephone requests from customers and travel agents. 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/3 63 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/3 63 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/4 § The company soon learned, however, that other parts of the organization

Web-Services Example/4 § The company soon learned, however, that other parts of the organization needed access to this same function. § Since auto rentals are highly competitive in same location § For example: marketing requests direct access to the availability and price function. § So they can quickly respond to competitors moves. § IT is asked to integrate the marketing application with the booking application. 64 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/5 § For IT, integrating functions across internal applications is commonplace. § Several

Web-Services Example/5 § For IT, integrating functions across internal applications is commonplace. § Several client/server technologies evolve to help achieve the architecture. 65 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/6 § § § Then came the Web Now IT was asked to

Web-Services Example/6 § § § Then came the Web Now IT was asked to make the availability and price function available to users over the Internet. Fortunately, Internet standards emerged to make this possible § The browser is a standard client. § HTTP is a standard communication protocol for the Internet. § HTML provides data functionality that can be interpreted and displayed by browsers. § CGI- and later application servers-provide a way for developers to interface to the application function. 66 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/7 § Most of the Web development effort of the late nineties was

Web-Services Example/7 § Most of the Web development effort of the late nineties was directed toward making an enterprise‘s application functions § § Available directly to customers over the Internet. But this is not a Web service since it is accessed by a browser user, not a client application. 67 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/8 § The next step for the rental car company is to make

Web-Services Example/8 § The next step for the rental car company is to make the availability and price function-and even the booking function § § Available not only to browser users § But to the booking applications of other companies Travel agents cannot browse the Web sites of all potential car rental companies § Looking for the best price. § They need an automated way to access the information and to place a booking. § Web-based travel services need to do this programmatically in response to requests from browser users. 68 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/9 § Once the Web services have been developed § The rental car

Web-Services Example/9 § Once the Web services have been developed § The rental car company can announce the availability of the service § Publish their interface specifications § In a directory accessible to everyone in the Web. § This allows potential partners to discover the availability of the rental car Web services. § And provide partners with the information required. § To access the Web services from a client application. 69 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/10 § Adding the Web services to an enterprise Web application environment can

Web-Services Example/10 § Adding the Web services to an enterprise Web application environment can result in the following architecture § These application functions provide data and services § 70 To both browser users and client applications. 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/11 71 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/11 71 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/12 § These are the needs driving the development of Web services §

Web-Services Example/12 § These are the needs driving the development of Web services § Application functions that can be accessed by other applications using Internet technology. § The key elements of this definitions are: § Access to the service is available to applications, not browsers § The standard technologies that enable this access are developed specifically for operations over the Internet. 72 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/13 § In some respects Web services are just an updated, Internet enabled

Web-Services Example/13 § In some respects Web services are just an updated, Internet enabled way of doing something application developers have always been able to do. § In other ways Web services promise to change the way business is done § And even to enable new kinds of business § Application integration has been around a long time § And there exist mature technologies that can do this. 73 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/14 § CORBA, COM, and later DCOM provide facilities § To create application

Web-Services Example/14 § CORBA, COM, and later DCOM provide facilities § To create application functions with defined and accessible interfaces § And to enable the development of clients § 74 That can access them-even over the Internet. 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/15 § There are two fundamental advantages by Web services over earlier application

Web-Services Example/15 § There are two fundamental advantages by Web services over earlier application integration approaches. § The underlying technology is designed from the ground up to operate over the Web and , in fact, leverages the existing standards that have made the Web successful. § Web services, and the technologies that are used to build them, take openness to a new level. 75 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/16 § While earlier approaches made it possible to provide an internal or

Web-Services Example/16 § While earlier approaches made it possible to provide an internal or external partner with the interface definition of an application function § So they could build a compatible client § Web services include the concept of an universal directory § To publish the availability of the service to the entire Internet § And to make it possible for a subscriber to create a client application § § That can easily, even dynamically, access the service. Further, since the standards are widely implemented on most platforms § There is a degree of platform independence (HW, OS, and middleware) not previously available. 76 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/17 § § In theory, a client can even be made smart enough

Web-Services Example/17 § § In theory, a client can even be made smart enough § To read and interpret the interface specification § And dynamically access the Web service promise a world in which applications can search the Web for services they need § And access these services in much the same way that browser users use search engines to locate and access Web sites. 77 08. 03. 2021 Dr. Withalm SOA Bratislava

Web-Services Example/18 § That is the vision § The reality is that technology is

Web-Services Example/18 § That is the vision § The reality is that technology is new § § The standards are still evolving § And the Web services being developed tend to be § Simple solutions for simple problems § Most of them are internal integration efforts. What also is required is § 78 Semantic Web 08. 03. 2021 Dr. Withalm SOA Bratislava

Core Web-Services Standards 79 08. 03. 2021 Dr. Withalm SOA Bratislava

Core Web-Services Standards 79 08. 03. 2021 Dr. Withalm SOA Bratislava

Other Web Service Standards/1 Business Domain Specific Extensions Various Distributed Management Provisioning WSDM, WS-Manageability

Other Web Service Standards/1 Business Domain Specific Extensions Various Distributed Management Provisioning WSDM, WS-Manageability WS-Provisioning Security Policy Secure Conversation Trusted Message Federated Identity WS-Security. Policy WS-Secure. Conversation WS-Trust WS-Federation Portal and Presentation WSRP 80 08. 03. 2021 Dr. Withalm Management Security Portal and Presentation SOA Bratislava

Other Web Service Standards /2 Asynchroneous Services ASAP Transaction WS-Transaction, WS-Coordination Orchestration BPEL 4

Other Web Service Standards /2 Asynchroneous Services ASAP Transaction WS-Transaction, WS-Coordination Orchestration BPEL 4 WS, WS-CDL Events and Notification WS-Eventing, WS-Notification Multiple Message Sessions WS-Enumeration, WS-Transfer Routing / Addressing WS-Addressing, WS-Message. Delivery Reliable Messaging WS-Reliable. Messaging, WS-Reliability Message Packaging SOAP, MTOM Publication and Discovery UDDI, WSIL Policy WS-Policy, WS-Policy. Assertions Service Message Description WSDL Metada Retrieval WS-Metadata. Exchange 81 08. 03. 2021 Dr. Withalm Transactions and Business Process Messaging Metadata SOA Bratislava

Other Web Service Standards /3 Mainstream Early Adoption Experimentation Specification SOAP WSDL UDDI WS-Security

Other Web Service Standards /3 Mainstream Early Adoption Experimentation Specification SOAP WSDL UDDI WS-Security WS-RP WS-Reliability SOAP MTOM ASAP BPEL WS-Coordination WS-Policy WS-Addressing WS-Choreography WS-Eventing WS-Federation WS-Provisioning WS-Reliable Messaging WS-Resource Framework WSDM Approved Standards 82 08. 03. 2021 Proposals Dr. Withalm SOA Bratislava

Web Services - Time to Mature Standards ’ 01 ’ 02 ’ 03 ’

Web Services - Time to Mature Standards ’ 01 ’ 02 ’ 03 ’ 04 ’ 05 ’ 06 ’ 07 Transaction, Mgmt. Trust & Security Foundation Orchestration, QOS WS-Security, SAML, XML, SOAP, WSDL, UDDI Uptake Internal Applications Trusted External Parties Used to link with trusted external parties Open Market Used to source services on the open market Early use 83 Used to integrate internal applications 08. 03. 2021 Becoming established Dr. Withalm Accepted approach SOA Bratislava

Web Services § A Web service is a software system designed to support interoperable

Web Services § A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machineprocessable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. 84 08. 03. 2021 Dr. Withalm SOA Bratislava

Portlets/1 § In contrast with Web-Services § which are computer-to-computer services § Presentation Oriented

Portlets/1 § In contrast with Web-Services § which are computer-to-computer services § Presentation Oriented Services provide a user interface § that allows an end-user to interact directly with the service. § Two main standards exist § the JSR 168 specification § and the Remote Portlets specification. 85 08. 03. 2021 Dr. Withalm SOA Bratislava

Portlets/23 WSRP Specification/1 § is a production of OASIS. § Since all of the

Portlets/23 WSRP Specification/1 § is a production of OASIS. § Since all of the major players in the portal market are represented on OASIS' WSRP Technical Committee, § § The OASIS WSRP specification defines a common, welldefined interface § § 86 the technology should continue to enjoy broad acceptance in the industry. for communicating with pluggable, presentationoriented Web services. These services process user interactions and provide mark-up fragments for aggregation by portals. 08. 03. 2021 Dr. Withalm SOA Bratislava

Web Service Standards § OASIS and the W 3 C are the steering committees

Web Service Standards § OASIS and the W 3 C are the steering committees responsible for the architecture and standardization of web services. To improve interoperability between web service implementations, the WS-I organization has been developing a series of profiles to further define the standards involved. 87 08. 03. 2021 Dr. Withalm SOA Bratislava

88 Static Web Services Dynamic Web Services – Static & Dynamic 08. 03. 2021

88 Static Web Services Dynamic Web Services – Static & Dynamic 08. 03. 2021 BPML Service Flow UDDI Service Discovery UDDI Service Publication WSDL Service Description SOAP XML Based Messaging HTTP, SMTP Dr. Withalm Network SOA Bratislava

Web Service Base Standards/1 § Simple Object Access Protocol (SOAP) - defines the runtime

Web Service Base Standards/1 § Simple Object Access Protocol (SOAP) - defines the runtime message that contains the service request and response. SOAP is independent of any particular transport and implementation technology. § Web Services Description Language (WSDL) - describes a Web Service and the SOAP Message. It provides a programmatic way to describe what a service does, paving the way for automation. § Universal Discovery, Description, Integration (UDDI) - UDDI is a cross industry initiative to create a standard for service discovery together with a registry facility that facilitates the publishing and discovery processes. 89 08. 03. 2021 Dr. Withalm SOA Bratislava

Web Service Base Standards/2 90 08. 03. 2021 Dr. Withalm SOA Bratislava

Web Service Base Standards/2 90 08. 03. 2021 Dr. Withalm SOA Bratislava

DI) UD D Fin (UD d( Service Registrar lish Pub I) Web Service Base

DI) UD D Fin (UD d( Service Registrar lish Pub I) Web Service Base Standards/3 Define (WSDL) Service Consumer 91 08. 03. 2021 Service Provider Use (SOAP) Dr. Withalm SOA Bratislava

Web Service Base Standards/4 Second generation Web-Services Standards 92 08. 03. 2021 Dr. Withalm

Web Service Base Standards/4 Second generation Web-Services Standards 92 08. 03. 2021 Dr. Withalm SOA Bratislava

Universal Discovery, Description, Integration (UDDI) § UDDI is a platform-independent, XML-based registry for businesses

Universal Discovery, Description, Integration (UDDI) § UDDI is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet. UDDI is an open industry initiative (sponsored by OASIS) enabling businesses to discover each other and define how they interact over the Internet. § A UDDI business registration consists of three components: § White Pages - address, contact, and known identifiers; § Yellow Pages - industrial categorizations based on standard taxonomies; and § Green Pages - technical information about services exposed by the business 93 08. 03. 2021 Dr. Withalm SOA Bratislava

Simple Object Access Protocol (SOAP) § SOAP originally was an acronym for Simple Object

Simple Object Access Protocol (SOAP) § SOAP originally was an acronym for Simple Object Access Protocol, but the acronym was dropped in Version 1. 2 of the SOAP specification. Originally designed by Dave Winer, Don Box, Bob Atkinson, and Mohsen Al. Ghosein in 1998 with backing from Microsoft (where Atkinson and Al-Ghosein worked at the time), the SOAP specification is currently maintained by the XML Protocol Working Group of the World Wide Web Consortium. 94 08. 03. 2021 Dr. Withalm SOA Bratislava

SOAP (W 3 C) § SOAP is fundamentally a stateless, one-way message exchange paradigm,

SOAP (W 3 C) § SOAP is fundamentally a stateless, one-way message exchange paradigm, but applications can create more complex interaction patterns (e. g. , request/response, request/multiple responses, etc. ) by combining such one-way exchanges with features provided by an underlying protocol and/or applicationspecific information. SOAP provides the framework by which application-specific information may be conveyed in an extensible manner. Also, SOAP provides a full description of the required actions taken by a SOAP node on receiving a SOAP message. 95 08. 03. 2021 Dr. Withalm SOA Bratislava

Sample SOAP Message §<? xml version='1. 0' ? > §<env: Envelope xmlns: env="http: //www.

Sample SOAP Message §<? xml version='1. 0' ? > §<env: Envelope xmlns: env="http: //www. w 3. org/2003/05/soap-envelope"> § <env: Header> § <m: reservation § xmlns: m="http: //travelcompany. example. org/reservation" § env: role="http: //www. w 3. org/2003/05/soap-envelope/role/next" § env: must. Understand="true"> § <m: reference> § uuid: 093 a 2 da 1 -q 345 -739 r-ba 5 d-pqff 98 fe 8 j 7 d § </m: reference> § <m: date. And. Time>2001 -11 -29 T 13: 20: 00. 000 -05: 00</m: date. And. Time> § </m: reservation> § <n: passenger xmlns: n="http: //mycompany. example. com/employees" § env: role="http: //www. w 3. org/2003/05/soap-envelope/role/next" § env: must. Understand="true"> § <n: name>Åke Jógvan Øyvind</n: name> § </n: passenger> § </env: Header> 96 08. 03. 2021 Dr. Withalm SOA Bratislava

Sample SOAP Message (cont. ) §<env: Body> § <p: itinerary xmlns: p="http: //travelcompany. example.

Sample SOAP Message (cont. ) §<env: Body> § <p: itinerary xmlns: p="http: //travelcompany. example. org/travel"> § <p: departure> § <p: departing>New York</p: departing> § <p: arriving>Los Angeles</p: arriving> § <p: departure. Date>2001 -12 -14</p: departure. Date> § <p: departure. Time>late afternoon</p: departure. Time> § <p: seat. Preference>aisle</p: seat. Preference> § </p: departure> § <p: return> § <p: departing>Los Angeles</p: departing> § <p: arriving>New York</p: arriving> § <p: departure. Date>2001 -12 -20</p: departure. Date> § <p: departure. Time>mid-morning</p: departure. Time> § <p: seat. Preference/> § </p: return> § </p: itinerary> §</env: Body> §</env: Envelope> 97 08. 03. 2021 Dr. Withalm SOA Bratislava

Web Services Description Language (WSDL) § § WSDL is an XML format published for

Web Services Description Language (WSDL) § § WSDL is an XML format published for describing Web services. WSDL describes the public interface to the web service. This is an XML-based service description on how to communicate using the web service; namely the protocol bindings and message formats required to interact with the web services listed in its directory. The supported operations and messages are described abstractly, and then bound to a concrete network protocol and message format. § WSDL is often used in combination with SOAP and XML Schema to provide web services over the internet. A client (program) connecting to a web service can read the WSDL to determine what functions are available on the server. Any special datatypes used are embedded in the WSDL file in the form of XML Schema. 98 08. 03. 2021 Dr. Withalm SOA Bratislava

WSDL Elements/1 Element Name Description types a container for abstract type definitions defined using

WSDL Elements/1 Element Name Description types a container for abstract type definitions defined using XML Schema message A definition of an abstract message that may consist of multiple parts, each part may be of a different type port. Type An abstract set of operations supported by one or more endpoints (commonly known as an interface); operations are defined by an exchange of messages binding A concrete protocol and data format specification for a particular port. Type service A collection of related endpoints, where an endpoint is defined as a combination of a binding and an address (URI) 99 08. 03. 2021 Dr. Withalm SOA Bratislava

WSDL Elements /2 §Platform Independent: §This view represents the abstract portion of the WSDL:

WSDL Elements /2 §Platform Independent: §This view represents the abstract portion of the WSDL: §Definitions §Service §Port. Type(s) §Messages §Part. Type(s) §Platform Specific Model: §This phase completes the bindings section of the WSDL: §Service §Ports §Binding(s) 100 08. 03. 2021 Dr. Withalm SOA Bratislava

WSDL - Binding Messages Tcp Smtp URI Http URI Interface operation operation § A

WSDL - Binding Messages Tcp Smtp URI Http URI Interface operation operation § A service can support multiple bindings for a given interface, but each binding should be accessible at a unique address identified by a URI, also referred to as a Web service endpoint. § Usually this information from the WSDL is used to implement late binding. Service 101 08. 03. 2021 Dr. Withalm SOA Bratislava

Thank you for your attention! SOA Bratislava

Thank you for your attention! SOA Bratislava

Farbpalette mit Farbcodes Primäre Flächenfarbe: Akzentfarben: R 255 G 255 B 255 Sekundäre Flächenfarben:

Farbpalette mit Farbcodes Primäre Flächenfarbe: Akzentfarben: R 255 G 255 B 255 Sekundäre Flächenfarben: 103 R 255 G 210 B 078 R 245 G 128 B 039 R 229 G 025 B 055 R 000 G 133 B 062 R 000 G 084 B 159 R 000 G 000 B 000 R 255 G 221 B 122 R 248 G 160 B 093 R 236 G 083 B 105 R 064 G 164 B 110 R 064 G 127 B 183 R 064 G 064 B 064 R 215 G 225 B 225 R 170 G 190 B 195 R 130 G 160 B 165 R 255 G 232 B 166 R 250 G 191 B 147 R 242 G 140 B 155 R 127 G 194 B 158 R 127 G 169 B 207 R 127 G 127 B 127 R 220 G 225 B 230 R 185 G 195 B 205 R 145 G 155 B 165 R 255 G 244 B 211 R 252 G 223 B 201 R 248 G 197 B 205 R 191 G 224 B 207 R 191 G 212 B 231 R 191 G 191 B 191 R 255 G 250 B 237 R 254 G 242 B 233 R 252 G 232 B 235 R 229 G 243 B 235 R 229 G 238 B 245 R 229 G 229 B 229 08. 03. 2021 Dr. Withalm SOA Bratislava