Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Applications
Directory service Security Choreography
SOAP
Acoplamiento Dbil: cont ...
Tendencia a la simplicidad: ejm, REST usa interfaces mnimas
(GOOGLE)
Uso de mltiples paradigmas de comunicacin (RR, Asncronos,
indirectos). Esto afecta el nivel de acoplamiento
Representacin del mensaje
SOAP y datos usan XML para su representacin. Ventaja: formato
lectura-humana. Desventaja: espacio que ocupa la representacin
textual y el tiempo de procesamiento (parse)
Referencia a servicios: Uso de URL (URN) para
referenciar servicios
Activacin de servicios: el servicio puede estar activo o
activarse por demanda, y estar replicado. URL es una
referencia persistente
Transparencia: a diferencia de otras plataformas
middleware, servicios web proveen transparencia, en
niveles simples, por medio de SOAP y XML. En otros
niveles, proporcionan API
Uso de Proxies o despachadores (Stub) para esconder llamadas
locales y remotas
Invocacin Dinmica: se proporciona una operacin genrica (en vez
de proxies) para procedimientos remotos
El cliente especifica el nombre de la operacin, argumentos y
se convierten con SOAP y XML
SOAP
envelope
header
header element header element
body
body element body element
m:exchange
xmlns:m = namespace URI of the service description
m:arg1 m:arg2
Hello World
In this figure and the next, each XML element is represented by a shaded
box with its name in italic followed by any attributes and its content
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
Ejemplo de una respuesta correspondiente a una
solicitud
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
SOAP: encabezados (headers)
header
Host: www.cdk4.net
HTTP
Content-Type: application/soap+xml
Action: http://www.cdk4.net/examples/stringer#exchange action
message
<env:header> </env:header>
<env:body> </env:body>
Soap
</env:Envelope>
From Globus.org
(Grid computing)
wscompile y wsdeploy
With Stubs
From Globus.org
(Grid computing)
Figure 9.7
Java web service interface ShapeList
import java.rmi.*;
public interface ShapeList extends Remote {
int newShape(GraphicalObject g) throws RemoteException;
int numberOfShapes()throws RemoteException;
int getVersion() throws RemoteException;
int getGOVersion(int i)throws RemoteException;
GraphicalObject getAllState(int i) throws RemoteException;
}
package staticstub;
import javax.xml.rpc.Stub;
public class ShapeListClient {
public static void main(String[] args) { /* pass URL of service */
try {
Stub proxy = createProxy(); 1
proxy._setProperty 2
(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]);
ShapeList aShapeList = (ShapeList)proxy; 3
GraphicalObject g = aShapeList.getAllState(0); 4
} catch (Exception ex) { ex.printStackTrace(); }
}
private static Stub createProxy() { 5
return
(Stub) (new MyShapeListService_Impl().getShapeListPort()); 6
}
}
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
Descripcin del servicio e IDL para Servicios Web
definitions
types message interface bindings services
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
WSDL: operacin newShape
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
SOAP enlaces (binding) y definicin de servicios
binding service
name = ShapeListBinding name = "MyShapeListService"
type = tns:ShapeList
soap:binding transport = URI endpoint
for schemas for soap/http
style= "rpc" name = "ShapeListPort"
binding = "tns:ShapeListBinding"
operation
name= "newShape"
input soap:address
soap:body location = service URI
encoding, namespace
output
soap:body
encoding, namespace
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
Estructura de datos UDDI -Universal Description
Discovery and Integration-
businessEntity businessServices
human readable businessServices
information
businessServices bindingTemplate
about the publisher
human readable bindingTemplate
information URL
about a bindingTemplate tModel
family of services information tModel
about the
URL
serviceinterfaces
service interfaces
tModel
key URL
key service descriptions
key
UDDI proporciona un API para la ubicacin de servicio:
get_xxx -- get_businessDetail, get_ServiceDetail ...
find_xxx --- find_business, find_Service ...
El servidor posee un URI para identificar el API del UDDI
XML: Seguridad
Requerimientos Bsicos:
Capacidad de encriptar un documento o parte de ello
Capacidad de proteger el acceso de un documento o
parte de ello
Requerimientos adicionales
Aadir secciones a un documento con acceso
protegido y proteger el resultado
Autorizar la lectura de diferentes partes del
documento a diferentes usuarios
Aadir secciones a un documento con partes
encriptadas y encriptar algo o toda la versin nueva
XML: Seguridad
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
XML: Seguridad
XML encriptacin:
Es una recomendacin XML que especifica la
manera de representar datos encriptados y el
proceso de encriptar-desencriptar
Conformado por un conjunto de algoritmos
requeridos y opcionales
Algoritmos requidos para encriptacin (adems de
referidos anteriormente)
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
XML: Coreografa
Propsito:
esboza el cdigo generado para un nuevo
servicio que desea participar;
como base para la generacin de mensajes
de prueba para un nuevo servicio;
promover un entendimiento comn de la
colaboracin;
analizar la colaboracin, por ejemplo, para
identificar posibles situaciones de punto
muerto (deadlock)
XML: Coreografa
pase de referencia, ejm, permitir que una empresa consulte un banco para una
verificacin de crdito en nombre de un usuario;
1. El cliente solicita el servicio de agente de viajes para obtener informacin sobre un conjunto de servicios;
por ejemplo , vuelos, alquiler de coches y reservas de hotel.
2. El servicio de agente de viajes recoge los precios y la disponibilidad de informacin y la enva al cliente ,
que elige una de las siguientes en nombre del usuario:
(a)refinar la consulta, posiblemente con ms proveedores para obtener ms informacin, a continuacin,
repita el paso 2;
(b) hacer las reservas;
(c) salir.
3. El cliente solicita una reseervacin y el servicio de agente de viajes chequea disponibilidad.
4.Cualquiera de estos opciones estn disponibles ;
o los servicios no estn disponibles ;
o bien las alternativas se ofrecen al cliente que se remonta al paso 3 ;
o el cliente vuelve al paso 1
5. Toma deposito.
6. Dar al cliente un nmero de reserva como una confirmacin.
7. Durante el perodo hasta el pago final , el cliente puede modificar o cancelar reservas
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012
Una seleccin de Servicios Web Amazon
Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
Pearson Education 2012