Понравилась презентация – покажи это...
12/25/2015 Web Services Введение в Web Services Галактионов В.В galakt@jinr.ru ОИЯИ, Дубна
12/25/2015 Web Services 1. Grid и Web Services роль WS в Grid-технологии 2. Реализации Grid Globus Toolkit: GT2, GT3 3. GT3 и OGSA WS-технология в Grid 4. GT4 и WSRF
12/25/2015 Web Services “Основная причина появления Web-сервисов - неспособность существующих технологий, таких как объектные системы типа COM семейства Microsoft и стандарты OMG CORBA, в полной мере обеcпечить совместимость (интер- операбельность) разнообразных программных продуктов для неоднородных распределенных систем. “
Web Services 1. Распределенные системы
2. Отношения “клиент-сервер” Client Server Server Client
3. Технологии для распределенных систем Socket- программирование . . . . . . . . . . . . . . . . . . . . . . . ----- объектное программирование ------------ COM/DCOM (Microsoft) RMI (Sun Microsystems) CORBA (OMG, Object Management Group) Web Services (W3C) Tds = Message + Protocol
4. Объектно-ориентированные системы4.1. Объектно-ориентированное программирование Локальные объекты: Math m = new Math(); double d1 = m.PI + m.E; double d = m.pow(d1, 2.0); float f = (float)m.sqrt(m.sin(d));
CORBA-объекты (VisiBroker): ORB orb = ORB.init(); Math m = MathHelper.bind(orb, “MathServer”); double d1 = m.PI +m.E; double d = m.pow(d1, 2.0); float f = (float)m.sqrt(m.sin(d));
4.2. Объектно-ориентированные распределенные системы Client Server Registry Object Interface IDL 1. Define interface 2. Implementation 3. Define Object 4. Publishing 5. Find 6. Interaction Interface Definition Language
5. Web Services - сервис-ориентированные распределенные системы Discovery Agency Service Description Service Provider Service Description Service Service Requestor Client
XML-технология
Элементы XML-технологии: Грамматика – DTD, XML Schema Синтаксический анализ (well formed, valid) Объектная модель DOM XML-преобразования XSLT
5. Стандарты Web Services SOAP - Simple Object Access Protocol WSDL – Web Services Definition Language Discovery Agency (repository): UDDI, ebXML, WS-Inspection (WSIL), JAXR
SOAP – правила построения сообщений в XML-формате и передача их по протоколу HTTP <?xml version="1.0"?> <SOAPMessage> <SOAPPart> <SOAPEnvelope> <SOAPHeader> . . . . . . . . . . . </SOAPHeader> <SOAPBody> . . . . . . . . . . . </SOAPBody> </SOAPEnvelope> </SOAPPart> </SOAPMessage>
Программирование SOAP-сообщений SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance(); SOAPConnection con = scf.createConnection(); MessageFactory mf = MessageFactory.newInstance(); SOAPMessage msg = mf.createMessage() SOAPPart sp = msg.getSOAPPart(); SOAPEnvelope envelope = sp.getEnvelope(); SOAPHeader hdr = envelope.getHeader(); SOAPBody bdy = envelope.getBody(); URL urlEndpoint = new URL(to); SOAPMessage reply = con.call(msg, urlEndpoint);
I. Режим передачи данных в SOAP-сообщенияхСинхронные сообщения
Асинхронные сообщения
II. Режим RPC – вызов удаленных процедур Stub stub = createProxy(); CarRentalQuotes objRef = (CarRentalQuotes)stub; String[] country = objRef.getCountries(); String[] loc = objRef.getLocations(country[0]); String[] curr = objRef.getCurrencies(); String[] cars = objRef.getCarTypes();
Диаграмма конвертирования RPC-вызовов вSOAP-сообщения
WSDL – Web Services Definition Language <?xml version="1.0" encoding="UTF-8"?> <definitions name="MyHello" targetNamespace="http://com.test/wsdl/MyHello" xmlns:tns="http://com.test/wsdl/MyHello" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <types/> <message name="HelloIF_sayHello"> <part name="String_1" type="xsd:string"/> </message> <message name="HelloIF_sayHelloResponse"> <part name="result" type="xsd:string"/> </message> <portType name="HelloIF"> <operation name="sayHello" parameterOrder="String_1"> <input message="tns:HelloIF_sayHello"/> <output message="tns:HelloIF_sayHelloResponse"/> </operation> </portType <binding name="HelloIFBinding" type="tns:HelloIF"> <operation name="sayHello"> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://com.test/wsdl/MyHello"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://com.test/wsdl/MyHello"/> </output> <soap:operation soapAction=""/> </operation> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/> </binding> <service name="MyHello"> <port name="HelloIFPort" binding="tns:HelloIFBinding"> <soap:address location="REPLACE_WITH_ACTUAL_URL"/> </port> </service> </definitions>
Регистрация сервисов UDDI(Universal Description, Discovery and Integration) - регистрация вычислительных или коммерческих услуг в формализованном XML-формате. Желтые Страницы - деловые предложения и услуги. Белые Страницы - контактная информацию. Зеленые Страницы - технические детали. UDDI предоставляет свои услуги также в формате Web-служб, и к нему можно обращаться за полученим сервиса стандартными средствами, например SOAP-сообщениями и другие (http://www.uddi.org/solutions.html).
Существует ряд открытых для пользователей UDDI-серверов, как для промышленного использования (UBR, UDDI Business Registry), так и для исследовательских целей (тестирования): SAP UDDI Test Business Registry (http://udditest.sap.com/); IBM UBR Node (http://uddi.ibm.com/); Microsoft UBR Node (http://uddi.microsoft.com/); Microsoft Test Node (http://test.uddi.microsoft.com/); и другие (http://www.uddi.org/solutions.html).
ebXML в основном предназначен для электронного бизнеса, предоставляет средства регистрации, поиска и анализа сервисных услуг. В отличие от UDDI, где информация строго структурирована и формализована, т.е. содержит только метаданные о сервисе, ebXML допускает включение в регистрацию кроме метаданных и дополнительную информацию произвольной структуры.
Реализации технологий Web Services SOAP Toolkit (Microsoft) Apache Axis, WebSphere Application Server (IBM), JWSDP (Sun).
http://www.xmethods.net/ve2/ViewListing.po;jsessionid=JQ4xjIisC91JCSafUI-E8NsY(QhxieSRM)?serviceid=175374
Или вы можете войти через Ваш аккаунт
У вас нет аккаунта? Создать аккаунт