This document provides an overview of middleware and client-server computing models for mobile applications. It discusses different client-server models including client-server, client-agent-server, and client-intercept-server. It also describes key components of web services including XML, SOAP, WSDL, and UDDI. The document uses examples to explain how WSDL defines web services operations and messages.
The document discusses implementing service-oriented architecture (SOA) using web services in C++. It provides reasons for using C++, such as performance advantages and tight control over memory and CPU. It then discusses how a native web services stack can help integrate legacy C++ systems and provide new capabilities without rewriting code. The stack should support web service standards, code generation from WSDL, portability, low memory usage, security, handling binary data, interoperability, and asynchronous communication. It presents the WSF/C++ stack as fulfilling these requirements through support for standards, security, low-level control, and interoperability testing.
Web services allow software components to communicate over the internet using standard protocols like HTTP and XML. They provide reusable business logic that can be accessed remotely by other applications. Some key advantages of web services include being simple, loosely coupled, stateless, and firewall friendly. The core technologies that enable web services are SOAP, WSDL, UDDI, and DISCO which handle messaging, description, discovery, and integration of web services. The typical lifecycle of a web service involves implementing it using a .NET web service, testing the service, consuming or using the service in a client application, and potentially publishing the service for discovery.
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud ComputingReza Rahimi
- The document discusses QoS-aware middleware for optimal service allocation in mobile cloud computing.
- It proposes a 2-tier cloud architecture consisting of local clouds and public clouds and develops algorithms to optimally allocate services for mobile users across these tiers.
- A location-time workflow model is used to represent mobile applications and QoS metrics like delay, power consumption and price are considered for optimal service allocation.
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
The document discusses several basic garbage collection techniques, including reference counting, mark-sweep collection, mark-compact collection, and copying garbage collection. Reference counting fails to reclaim circular structures and has overhead when pointers are created or destroyed. Mark-sweep identifies live objects but leaves memory fragmented, while mark-compact compacts objects after marking to reduce fragmentation. Copying garbage collection divides memory into two semispaces and copies live objects between them when one semispace fills up.
The document discusses delivering and demonstrating value through a service catalogue. It outlines a 7 step route map for doing so, including feasibility analysis, workshops with stakeholders, customer and IT liaison, service design, documentation, and implementation. It emphasizes the importance of having the right people and skills involved, and ongoing governance to ensure services remain relevant. Strong executive sponsorship, requirements, and project planning are seen as critical success factors for service catalog projects. Metrics like customer satisfaction, IT quality of service, and business metrics can demonstrate the value delivered through services and the service catalogue.
Comparison of Current Service Mesh ArchitecturesMirantis
Learn the differences between Envoy, Istio, Conduit, Linkerd and other service meshes and their components. Watch the recording including demo at: https://info.mirantis.com/service-mesh-webinar
Slides from the October 2016 meetup presentation of the Massachusetts Microservices Meetup group.
Kenzan
Twitter: @kenzanmedia
Linkedin: www.linkedin.com/company/kenzan-media
Blog: techblog.kenzan.com
Facebook: www.facebook.com/kenzanmedia/
The document discusses implementing service-oriented architecture (SOA) using web services in C++. It provides reasons for using C++, such as performance advantages and tight control over memory and CPU. It then discusses how a native web services stack can help integrate legacy C++ systems and provide new capabilities without rewriting code. The stack should support web service standards, code generation from WSDL, portability, low memory usage, security, handling binary data, interoperability, and asynchronous communication. It presents the WSF/C++ stack as fulfilling these requirements through support for standards, security, low-level control, and interoperability testing.
Web services allow software components to communicate over the internet using standard protocols like HTTP and XML. They provide reusable business logic that can be accessed remotely by other applications. Some key advantages of web services include being simple, loosely coupled, stateless, and firewall friendly. The core technologies that enable web services are SOAP, WSDL, UDDI, and DISCO which handle messaging, description, discovery, and integration of web services. The typical lifecycle of a web service involves implementing it using a .NET web service, testing the service, consuming or using the service in a client application, and potentially publishing the service for discovery.
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud ComputingReza Rahimi
- The document discusses QoS-aware middleware for optimal service allocation in mobile cloud computing.
- It proposes a 2-tier cloud architecture consisting of local clouds and public clouds and develops algorithms to optimally allocate services for mobile users across these tiers.
- A location-time workflow model is used to represent mobile applications and QoS metrics like delay, power consumption and price are considered for optimal service allocation.
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
The document discusses several basic garbage collection techniques, including reference counting, mark-sweep collection, mark-compact collection, and copying garbage collection. Reference counting fails to reclaim circular structures and has overhead when pointers are created or destroyed. Mark-sweep identifies live objects but leaves memory fragmented, while mark-compact compacts objects after marking to reduce fragmentation. Copying garbage collection divides memory into two semispaces and copies live objects between them when one semispace fills up.
The document discusses delivering and demonstrating value through a service catalogue. It outlines a 7 step route map for doing so, including feasibility analysis, workshops with stakeholders, customer and IT liaison, service design, documentation, and implementation. It emphasizes the importance of having the right people and skills involved, and ongoing governance to ensure services remain relevant. Strong executive sponsorship, requirements, and project planning are seen as critical success factors for service catalog projects. Metrics like customer satisfaction, IT quality of service, and business metrics can demonstrate the value delivered through services and the service catalogue.
Comparison of Current Service Mesh ArchitecturesMirantis
Learn the differences between Envoy, Istio, Conduit, Linkerd and other service meshes and their components. Watch the recording including demo at: https://info.mirantis.com/service-mesh-webinar
Slides from the October 2016 meetup presentation of the Massachusetts Microservices Meetup group.
Kenzan
Twitter: @kenzanmedia
Linkedin: www.linkedin.com/company/kenzan-media
Blog: techblog.kenzan.com
Facebook: www.facebook.com/kenzanmedia/
The document discusses different cloud computing deployment models: public cloud, private cloud, hybrid cloud, and community cloud. It provides details on the public cloud model, noting that infrastructure is provisioned for open use by the general public and is owned, managed, and operated by a business, academic, or government organization. Workloads in a public cloud may be relocated anywhere without location restrictions and introduce security and reliability risks due to multi-tenancy and dependence on public internet infrastructure.
This document provides an overview of web services submitted by Miss. Rachna Kamalia and prepared by Miss. Nilam Radadiya and Miss. Kinjal Kapadiya. It defines web services as a collection of open protocols for exchanging data between applications over a network. The document describes how web services work, why they are used, their components like XML, WSDL, SOAP, and UDDI, as well as their advantages of interoperability and reusability and disadvantages regarding security and quality of service. It concludes with an overview of the web services composition process.
Cloud computing deployment models include public, private, hybrid, and community clouds. A public cloud has infrastructure open for public use, owned by a business, academic, or government organization. Examples are Google App Engine and Amazon EC2. Workloads in a public cloud may be relocated anywhere and shared on multi-tenant machines, introducing reliability and security risks. Subscribers have limited visibility and control over their data security.
The document discusses cloud computing and data centers. It defines cloud computing as a style of computing where scalable IT capabilities are provided as an internet-based service. It describes the different cloud service models including SaaS, PaaS, and IaaS. It also discusses cloud deployment models like public, private, community and hybrid clouds. The document then explains how growing adoption of cloud computing requires large data centers to host servers. It provides details on data center network architectures, use of Ethernet, and the role data centers play in processing user requests and transactions.
This document discusses web-based applications and cloud computing. It begins by explaining how web-based applications hosted in the cloud are cheaper and easier to manage than desktop software. It then discusses the benefits of cloud-enabled collaboration not possible with desktop apps. The document goes on to discuss essential aspects of creating web-based apps like database integration, deployment on intranets and extranets. It also covers types of cloud services like IaaS, PaaS and SaaS and provides examples. Finally, it discusses tools for cloud development like Amazon EC2 and Google App Engine.
Client-server architecture separates programs into two parts - clients, which make requests, and servers, which fulfill requests. A client-server model has three main components: clients, servers, and communication middleware. Clients are front-end applications that users interact with to make requests. Servers are back-end applications that provide services to clients. Middleware facilitates communication between clients and servers. Common middleware standards are CORBA and COM/DCOM. Client-server systems can be organized as one-tier, two-tier, or three-tier architectures depending on how functionality is divided between clients and servers.
This document provides an overview of networking fundamentals including:
1) It describes the layered protocol model used in networking with examples of the ISO OSI model and TCP/IP model.
2) It defines what the Internet is as a network of interconnected networks that allows communication through standardized protocols like TCP, IP, and HTTP across a variety of physical network infrastructures.
3) It discusses different network architectures including client-server, peer-to-peer, caching with proxy servers, thin clients with remote computing, and wireless and wired access networks that connect end systems to the network core.
The document provides an overview of microservices architecture and how to build microservices on Azure. It begins with defining microservices and comparing them to monolithic applications. Key characteristics of microservices like independent deployability and small, focused teams are discussed. The document covers design considerations like service boundaries, data management, communication between services, API design, and logging/monitoring. Hosting options on Azure like Service Fabric and serverless Functions are presented. It concludes with noting references for further reading on microservices patterns and practices.
Introduction to SOAP/WSDL Web Services and RESTful Web Servicesecosio GmbH
In this talk, held as part of the Web Engineering lecture series 2015 at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
This document discusses consuming web services from an Android application using SOAP and REST. It provides examples of using a SOAP client to call a .NET web service hosted on IIS and returning data in an XML envelope. It also discusses using a REST client to invoke PHP services on a web server and receive JSON responses. The document outlines the layers of the web service architecture including transport, messaging, description and discovery.
The document discusses various topics related to cloud computing including traditional client-server concepts, virtual server concepts, cloud computing definitions, characteristics and benefits of cloud computing, core technologies influencing cloud computing like distributed systems, virtualization, and types of cloud deployment models. The key technologies discussed are distributed systems, virtualization, and different types of virtualization. Cloud computing provides on-demand access to configurable computing resources and services over the Internet on a pay-per-use basis.
The document provides an introduction to cloud computing using Amazon Web Services (AWS) as an example. It discusses what cloud computing is, the evolution of cloud computing, and benefits such as speed, cost reduction, scalability, availability, and business agility. It then describes key AWS services including compute, storage, databases, security and identity, and developer tools. AWS is highlighted as the market leader in cloud computing, launched in 2006, and providing over 140 services globally across various regions and availability zones.
This presentation lecture was delivered in HITEC University, Pakistan. This is my view of the cloud and next generation computing infrastructure supported by the cloud infrastructure.
Components of a Generic Web Application ArchitectureMadonnaLamin1
The web application is composed of a complex architecture of varied components and layers. The request generated by the user passes through all these layers. When a user makes a request on a website, various components of the applications, user interfaces, middleware systems, database, servers and the browser interact with each other
Cloud computing is a general term for internet-based computing where shared servers provide resources, software, and data to computers and other devices on demand. It provides scalable and elastic resources, accessible from anywhere on the internet. Key characteristics include on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. Cloud services can be software, platforms, or infrastructure delivered as a service via private, public or hybrid clouds.
The document discusses different types of computer networks including local area networks (LANs), metropolitan area networks (MANs), personal area networks (PANs), and wide area networks (WANs). It also describes client-server network architecture, where client computers request services from more powerful server computers, and peer-to-peer architecture where each computer on the network can act as both a client and server. Network administration involves managing a network to keep it operating properly and connecting different computer systems within an organization.
Cloud computing is a general term for internet-based computing where shared servers provide resources, software, and data to computers and other devices on demand. It provides scalable, elastic resources without upfront investment for infrastructure. Key characteristics include pay-for-use, ubiquitous network access, resource pooling, rapid elasticity, and measured service. Common cloud service models are SaaS, PaaS, and IaaS. While the cloud provides opportunities like reduced costs and universal access, disadvantages include reliance on internet connectivity and potential security and control issues.
The document discusses service-oriented architecture (SOA) and key concepts in SOA, including:
1) SOA uses independent, reusable services as components for developing distributed systems, with services executing on different computers and communicating through standard protocols.
2) The benefits of SOA include flexibility in where services are provided and enabling inter-organizational computing through simplified information exchange.
3) Key SOA standards include SOAP for message exchange, WSDL for defining service interfaces and bindings, and WS-BPEL for defining service composition workflows.
The document discusses different cloud computing deployment models: public cloud, private cloud, hybrid cloud, and community cloud. It provides details on the public cloud model, noting that infrastructure is provisioned for open use by the general public and is owned, managed, and operated by a business, academic, or government organization. Workloads in a public cloud may be relocated anywhere without location restrictions and introduce security and reliability risks due to multi-tenancy and dependence on public internet infrastructure.
This document provides an overview of web services submitted by Miss. Rachna Kamalia and prepared by Miss. Nilam Radadiya and Miss. Kinjal Kapadiya. It defines web services as a collection of open protocols for exchanging data between applications over a network. The document describes how web services work, why they are used, their components like XML, WSDL, SOAP, and UDDI, as well as their advantages of interoperability and reusability and disadvantages regarding security and quality of service. It concludes with an overview of the web services composition process.
Cloud computing deployment models include public, private, hybrid, and community clouds. A public cloud has infrastructure open for public use, owned by a business, academic, or government organization. Examples are Google App Engine and Amazon EC2. Workloads in a public cloud may be relocated anywhere and shared on multi-tenant machines, introducing reliability and security risks. Subscribers have limited visibility and control over their data security.
The document discusses cloud computing and data centers. It defines cloud computing as a style of computing where scalable IT capabilities are provided as an internet-based service. It describes the different cloud service models including SaaS, PaaS, and IaaS. It also discusses cloud deployment models like public, private, community and hybrid clouds. The document then explains how growing adoption of cloud computing requires large data centers to host servers. It provides details on data center network architectures, use of Ethernet, and the role data centers play in processing user requests and transactions.
This document discusses web-based applications and cloud computing. It begins by explaining how web-based applications hosted in the cloud are cheaper and easier to manage than desktop software. It then discusses the benefits of cloud-enabled collaboration not possible with desktop apps. The document goes on to discuss essential aspects of creating web-based apps like database integration, deployment on intranets and extranets. It also covers types of cloud services like IaaS, PaaS and SaaS and provides examples. Finally, it discusses tools for cloud development like Amazon EC2 and Google App Engine.
Client-server architecture separates programs into two parts - clients, which make requests, and servers, which fulfill requests. A client-server model has three main components: clients, servers, and communication middleware. Clients are front-end applications that users interact with to make requests. Servers are back-end applications that provide services to clients. Middleware facilitates communication between clients and servers. Common middleware standards are CORBA and COM/DCOM. Client-server systems can be organized as one-tier, two-tier, or three-tier architectures depending on how functionality is divided between clients and servers.
This document provides an overview of networking fundamentals including:
1) It describes the layered protocol model used in networking with examples of the ISO OSI model and TCP/IP model.
2) It defines what the Internet is as a network of interconnected networks that allows communication through standardized protocols like TCP, IP, and HTTP across a variety of physical network infrastructures.
3) It discusses different network architectures including client-server, peer-to-peer, caching with proxy servers, thin clients with remote computing, and wireless and wired access networks that connect end systems to the network core.
The document provides an overview of microservices architecture and how to build microservices on Azure. It begins with defining microservices and comparing them to monolithic applications. Key characteristics of microservices like independent deployability and small, focused teams are discussed. The document covers design considerations like service boundaries, data management, communication between services, API design, and logging/monitoring. Hosting options on Azure like Service Fabric and serverless Functions are presented. It concludes with noting references for further reading on microservices patterns and practices.
Introduction to SOAP/WSDL Web Services and RESTful Web Servicesecosio GmbH
In this talk, held as part of the Web Engineering lecture series 2015 at Vienna University of Technology, we give an overview of the current state of the art in the domain of Web Services.
In the first part we dwell on the main principles of Service Oriented Architectures (SOA), followed by an introduction of the three core standards SOAP, WSDL, as well as UDDI. Furthermore, we briefly cover the Java API for XML Web Services (JAX-WS).
In the second part we focus on principles of RESTful Web Services and the Java API for RESTful Web Services. The lecture is accompanied by practical examples, which are also available on GitHub.
This document discusses consuming web services from an Android application using SOAP and REST. It provides examples of using a SOAP client to call a .NET web service hosted on IIS and returning data in an XML envelope. It also discusses using a REST client to invoke PHP services on a web server and receive JSON responses. The document outlines the layers of the web service architecture including transport, messaging, description and discovery.
The document discusses various topics related to cloud computing including traditional client-server concepts, virtual server concepts, cloud computing definitions, characteristics and benefits of cloud computing, core technologies influencing cloud computing like distributed systems, virtualization, and types of cloud deployment models. The key technologies discussed are distributed systems, virtualization, and different types of virtualization. Cloud computing provides on-demand access to configurable computing resources and services over the Internet on a pay-per-use basis.
The document provides an introduction to cloud computing using Amazon Web Services (AWS) as an example. It discusses what cloud computing is, the evolution of cloud computing, and benefits such as speed, cost reduction, scalability, availability, and business agility. It then describes key AWS services including compute, storage, databases, security and identity, and developer tools. AWS is highlighted as the market leader in cloud computing, launched in 2006, and providing over 140 services globally across various regions and availability zones.
This presentation lecture was delivered in HITEC University, Pakistan. This is my view of the cloud and next generation computing infrastructure supported by the cloud infrastructure.
Components of a Generic Web Application ArchitectureMadonnaLamin1
The web application is composed of a complex architecture of varied components and layers. The request generated by the user passes through all these layers. When a user makes a request on a website, various components of the applications, user interfaces, middleware systems, database, servers and the browser interact with each other
Cloud computing is a general term for internet-based computing where shared servers provide resources, software, and data to computers and other devices on demand. It provides scalable and elastic resources, accessible from anywhere on the internet. Key characteristics include on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. Cloud services can be software, platforms, or infrastructure delivered as a service via private, public or hybrid clouds.
The document discusses different types of computer networks including local area networks (LANs), metropolitan area networks (MANs), personal area networks (PANs), and wide area networks (WANs). It also describes client-server network architecture, where client computers request services from more powerful server computers, and peer-to-peer architecture where each computer on the network can act as both a client and server. Network administration involves managing a network to keep it operating properly and connecting different computer systems within an organization.
Cloud computing is a general term for internet-based computing where shared servers provide resources, software, and data to computers and other devices on demand. It provides scalable, elastic resources without upfront investment for infrastructure. Key characteristics include pay-for-use, ubiquitous network access, resource pooling, rapid elasticity, and measured service. Common cloud service models are SaaS, PaaS, and IaaS. While the cloud provides opportunities like reduced costs and universal access, disadvantages include reliance on internet connectivity and potential security and control issues.
The document discusses service-oriented architecture (SOA) and key concepts in SOA, including:
1) SOA uses independent, reusable services as components for developing distributed systems, with services executing on different computers and communicating through standard protocols.
2) The benefits of SOA include flexibility in where services are provided and enabling inter-organizational computing through simplified information exchange.
3) Key SOA standards include SOAP for message exchange, WSDL for defining service interfaces and bindings, and WS-BPEL for defining service composition workflows.
2. Middleware: Client-Server Computing 2
Lecture Objectives
● Differentiate and exemplify client-server,
client-agent-server, and client-intercept-server
models of middleware
● Understand functionality provided by middleware for
client, agent, and server software development
● Understand how the client-server computational
model middleware is able to deal with heterogeneous
wireless devices and scalability
● Characterize the design requirements of example
client-server applications and rationalize the choice
of middleware and design for application
development
3. Middleware: Client-Server Computing 3
Resources
● H. Gunzer, “Introduction to Web Services,” March
2002, http://bdn.borland.com/article/images/28818/
webservices.pdf
● Microsoft Developer Network, “Web Services
Basics,” http://msdn.microsoft.com/webservices/
understanding/webservicebasics/
4. Middleware: Client-Server Computing 4
Agenda
● Client-server and middleware overview
● Client-server computational models
■ Client-server
■ Client-agent-server
■ Client-intercept-server
● Web services overview
● Web services based on Extensible Markup Language
(XML) for mobile devices
■ Small Object Access Protocol (SOAP)
■ Web Service Description Language (WSDL)
5. Middleware: Client-Server Computing 5
Middleware (Review)
● Middleware is a layer between the operating system
and applications that provides a set of services
■ Abstract interface to the application
■ Uniform view of operating systems, networks, and hardware
platforms
Operating System
and Networking Services
Middleware
Application Programs
API
6. Middleware: Client-Server Computing 6
Client-Server Computing
Client-Server vs. Peer-to-Peer
Server
• Client initiates
communications
• Client issues request
to a server
• Server replies or
performs some service
Peer-to-Peer Computing
• Any participant can
initiate communication
• Any device can
generate a request
• Any device may
provide a response
8. Middleware: Client-Server Computing 8
Client-Server Model (1)
● Communication models
■ Message passing with queuing
■ Remote procedure call (RPC)
● Client-server synchronization
■ Synchronous
○ Inadequate – Client is blocked if disconnected
■ Asynchronous
○ Client requests are queued locally and control is returned
immediately to the client
○ When the mobile is connected, the queue is drained in
the background and any queued messages or calls are
forwarded to the server
9. Middleware: Client-Server Computing 9
Mobile Host
Client-Server Model (2)
● Optimization for mobile/wireless involves changes at
both the client and server
● Example (worst-case)
■ Standard web browser accessing an HTTP server over a
wireless link
Application
Client
Application
Server
Fixed
Network
Wireless
Network
10. Middleware: Client-Server Computing 10
Client-Agent-Server Model (1)
● Computation is split into two units
■ Client-agent – optimized for mobile environment
■ Agent-server –traditional (non-mobile) design
● Dealing with disconnection
■ Clients submit requests to the agent and retrieve responses
from the agent upon reconnection
■ The agent can employ optimization and transformation
techniques to the data to be transmitted depending, based
on
○ Type of data
○ Type of devices
○ Application-specific requirements
11. Middleware: Client-Server Computing 11
Client-Agent-Server Model (2)
● Optimization for mobile/wireless involves client and
agent
● Single application server to support both fixed
network clients and mobile clients
Mobile Host
Application
Client
Application
Server
Fixed
Network
Wireless
Network
Agent
12. Middleware: Client-Server Computing 12
Client-Agent-Server Example
● Wireless Application Protocol (WAP)
■ Mobile device runs the client
■ The gateway acts as the agent
■ Standard HTTP server can be used
Client
Web
Browser
Server
HTTP
Server
CGI,
etc.
Gateway
Encoders
Decoders
encoded
request
encoded
response
request
response
Protocol
Gateways
wireless
13. Middleware: Client-Server Computing 13
Client-Intercept-Server Model (1)
● Inter-agent optimization protocols can be used
between the client-side agent and the server-side
agent
■ Minimize communication cost via…
○ Caching
○ Differencing
○ Header reduction
○ One-HTTP connection per session
● Caching/prefetching at the client agent to allow
disconnected operations
■ For example, ADO .NET/SQL server CE
14. Middleware: Client-Server Computing 14
Client-Intercept-Server Model (2)
● Example – IBM Web Express
■ Web Browser (client) ↔ HTTP ↔ Client-side agent ↔ TCP/IP
connection ↔ Server side agent ↔ HTTP ↔ Web server
Mobile Host
Application
Server
Fixed
Network
Wireless
Network
Agent
Client
Client
Side
Agent
15. Middleware: Client-Server Computing 15
Web Services
● Web Services are encapsulated, loosely coupled
contracted functions offered via standard protocols
where:
■ Encapsulated – implementation of the function is never seen
from the outside
■ Loosely coupled – changing the implementation of one
function does not require change of the invoking function
■ Contracted – there are publicly available descriptions of the
function’s behavior, how to bind to the function, and its
input and output parameters
From webservices.org, quoted in H. Gunzer, “Introduction to Web Services
17. Middleware: Client-Server Computing 17
Web Services Architecture (2)
● Service broker
■ Look up service between a service provider and a service
requestor
● Service provider
■ Publishes its services to the service broker
● Service requester
■ Asks the service broker where to find a suitable service
provider and then binds itself to the provider
18. Middleware: Client-Server Computing 18
Web Services Components
● XML – Extensible
Markup Language
● SOAP – Simple
Object Access
Protocol
● WSDL – Web Services
Definition Language
● UDDI – Universal
Discovery Description
Integration
UDDI
WSDL
SOAP
XML
HTTP FTP SMTP
WebServices
XML normally
carried using
HTTP
UDDI is the
“yellow pages”
of web services
19. Middleware: Client-Server Computing 19
Extensible Markup Language (XML)
● XML is a platform-neural data standard for
describing, storing and transporting data across the
web
● XML is a core technology for web services
■ XML is the basis for separately developed web services to
interact with each other
■ XML facilitates component development
○Package application functionality as small, easily
connected web services
○Compose an application using “web services”
components
20. Middleware: Client-Server Computing 20
XML and Microsoft’s .NET
● .NET is a Microsoft technology to develop XML web
services on many platforms
■ .NET Active Server Page (ASP) – used to develop web
services
■ .NET Compact Framework (CF) – used to develop web
services on small devices
■ Microsoft Internet Toolkit (MIT) – used to develop server-side
proxies to deal with heterogeneous mobile devices
21. Middleware: Client-Server Computing 21
XML and Wireless Web Access (1)
● The synergy between XML and wireless can be
considered from two perspectives:
■ XML as a data representation technology
■ XML as a meta-language (a set of rules to define domain-
specific data definition languages)
● XML as a data representation technology
■ Facilitates content delivery (via XML transformation) to a
wide variety of mobile devices and platforms
22. Middleware: Client-Server Computing 22
XML and Wireless Web Access (2)
● XML as a meta-language
■ Key to the success of XML-based wireless web access
initiatives
■ WML – XML-compliant language used by WAP 1.0
■ XHTML – XML-compliant language adopted by WAP 1.2 and
future i-mode
■ Web Service Description Language (WSDL) – XML-compliant
language normally used in a WSDL document to describe a
web service’s interface
○ Provides clients with information on how to invoke a web
service
23. Middleware: Client-Server Computing 23
XML Transformation
● XML separates the data
from a fixed description
of how the data should
be displayed
● Extensible Style-Sheet
Language (XLS)
describes how to
display content
● XSLT is a scheme to
transform XML data into
device-specific formats
XML
WML
XHTML
cHTML
XSLT
24. Middleware: Client-Server Computing 24
XSLT to Target XML to Different Devices
WML
cHTML
PDA-specific
<?xml version=‘1.0’?>
<response id=“Result”>
<class
ECE/CS 4984
</class>
<price>
Invaluable
</price>
</response>
XSLT
for WAP
XSLT
for i-mode
XSLT
for PDA
XSLT
Engine
25. Middleware: Client-Server Computing 25
SOAP for Invoking Web Services (1)
● Small Object Access Protocol (SOAP) is a standard
for invoking XML web services through remote
procedure calls over HTTP
● Used by Microsoft’s .NET
■ .NET Compact Frame implements SOAP 1.1 to allow smart
devices to establish connections and move data to other
devices
UDDI
WDSL
SOAP
XML
26. Middleware: Client-Server Computing 26
SOAP for Invoking Web Services (2)
● To make a method call to a web service…
■ Client first learns the service interface via the server’s Web
Services Description Language (WSDL) document
■ Client then sends a request to the URL where the service is
running in a SOAP message in XML format for the RPC
UDDI
WDSL
SOAP
XML
27. Middleware: Client-Server Computing 27
SOAP and WSDL
● WSDL document specifies
■ The name of the method to be invoked
■ The namespace Universal Resource Identifier (URI) for the
method name
○ A namespace is a unique string to fully qualify XML
element and attribute names
■ The parameter names and their data types
■ The SOAPAction
○ Placed in the HTTP header that the client sends when it
invokes the service
■ The URL at which the service is running
28. Middleware: Client-Server Computing 28
Accessing Web Services
From http://www.learnxmlws.com/tutors/wsdl/wsdl.aspx
Middleware: Client-Server Computing
29. Middleware: Client-Server Computing 29
WSDL for Defining Web Services
● WSDL is an XML-based language used to…
■ Define a web service
■ Describe how to access methods provided by the service
UDDI
WDSL
SOAP
XML
30. Middleware: Client-Server Computing 30
Example: WSDL of a Weather Service
● <definitions> element is the root element of the
WSDL document
● Declare the WSDL name space as the default name
space for the document
■ All elements and attributes belong to this name space
unless they have another name space prefix
● Each service is defined using a service element
<definitions name ='weatherservice'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
<service name='WeatherService' >
…
</service>
</definitions>
31. Middleware: Client-Server Computing 31
Port Definitions in WSDL
● Within a service element, you specify the different
“ports” on which this service is accessible
● A port specifies the service URL
● Each port has a unique name and a binding attribute
● When using SOAP, the port element contains a
<soap:address/> element with the service address
URL
32. Middleware: Client-Server Computing 32
Example: WSDL Port Definitions
● If the URL is http://www.ws/demos/wsdl/devxpert/
weatherservice.asp, the port definition would look
like …
<port name=‘WeatherSoapPort’
binding=‘wsdlns:WeatherSoapBinding’>
<soap:address location=
‘http://www.ws/demos/wsdl/devxpert/weatherservice.asp’ />
</port>
33. Middleware: Client-Server Computing 33
WSDL Message Element
● To use web services in an RPC model, WSDL
describes the message structures by using the
<message> element
■ Each <message> contains zero or more <part> elements.
■ A <part> corresponds to a parameter or a return value in the
RPC call
34. Middleware: Client-Server Computing 34
Example: Messages Elements
● The GetTemperature method would include one input
message and one output message
<message name='Weather.GetTemperature'>
<part name='zipcode' type='xsd:string'/>
<part name='celsius' type='xsd:boolean'/>
</message>
<message name='Weather.GetTemperatureResponse'>
<part name='Result' type='xsd:float'/>
</message>
xsd: float is predefined in http://www.w3.org/2001/XMLSchema
35. Middleware: Client-Server Computing 35
WSDL Operation Element
● The WSDL <operation> element is used to specify
which message is the input and which message is
the output
● The parameterOrder attribute is optional and may be
used to specify a space-delimited list of part names
to indicate the order of parameters when making the
RPC call
● <input> and <output> elements are specified within
an <operation> element
■ Each refers to the corresponding message by its fully
qualified name
36. Middleware: Client-Server Computing 36
Example: Operation Element
● Example: wsdlns:Weather.GetTemperature
<portType name='WeatherSoapPort'>
<operation name='GetTemperature'
parameterOrder='zipcode celsius'>
<input message='wsdlns:Weather.GetTemperature' />
<output message='wsdlns:Weather.GetTemperatureResponse' />
</operation>
<!-- other operations would go here -->
</portType>
37. Middleware: Client-Server Computing 37
WSDL Binding Element (1)
● The WSDL <binding> element is used to bind a
<port>
● Inside the <binding>, element the <soap:binding>
extension element can specify the transport protocol
and style of the request
■ SOAP can be used over HTTP, SMTP, or, possibly, any other
transport
■ RPC and document are the two styles
<binding name='WeatherSoapBinding'
type='wsdlns:WeatherSoapPort' >
…
</binding>
38. Middleware: Client-Server Computing 38
WSDL Binding Element (2)
● For each operation that this service exposes, a value
of the SOAP Action is specified in the
<soap:operation> element
■ The client must put the SOAP Action value in the HTTP
header when it invokes the service
41. Middleware: Client-Server Computing 41
WSDL Example I (2)
● The <operation> element can…
■ Include <input> and an <output> element
■ Use a <soap:body> element within each to specify how the
data is encoded
● The URI http://schemas.xmlsoap.org/soap/encoding/
indicates the SOAP encoding style as described in
the SOAP 1.1 specification
44. Middleware: Client-Server Computing 44
Summary
● Examined client-server computational model,
including models for client-server middleware
■ Client-server
■ Client-agent-server
■ Client-intercept-server
● Discussed web services
● Examined web services based on XML
UDDI
WSDL
SOAP
XML
HTTP FTP SMTP