В.В. Кулямин - Технологии программирования. Компонентный подход (1134162), страница 78
Текст из файла (страница 78)
Должно быть в любом сообщении.Простой пример SOAP-сообщения приведен ниже.<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><t:Transactionxmlns:t="http://company.com/soap-headers/attrs"SOAP-ENV:mustUnderstand="1">5</t:Transaction></SOAP-ENV:Header><SOAP-ENV:Body><m:GetLastTradePrice xmlns:m="http://company.com/web-services/trading"><symbol>DEF</symbol></m:GetLastTradePrice></SOAP-ENV:Body></SOAP-ENV:Envelope>Кроме определения формата сообщений, протокол SOAP определяет процесс их обработкиразличными посредниками и получателями.ИменованиеРоль служб именования и каталогов в приложениях на основе Web-служб играют реестрыWeb-служб, организованные в соответствии со стандартом UDDI (Universal Description, Discoveryand Integration, универсальный стандарт описания, поиска и интеграции) [25].281Существует всего лишь несколько универсальных реестров, регистрирующих любыедоступные в Интернет Web-службы.
Каждый из них поддерживается одной из крупных компаний,играющих заметную роль в развитии технологий разработки Web-служб. Такие реестры есть уIBM, Microsoft, SAP, NTT. К сожалению, они содержат не очень много записей о работающихWeb-службах. Гораздо больше специализированных реестров, предназначенных дляиспользования в рамках одной организации или компанией и ее партнерами.UDDI описывает структуру реестров Web-служб. Каждая запись в таком реестре являетсяXML-документом.
Наиболее важная информация содержится в документах следующих видов.•businessEntity. Такой документ описывает организацию (или лицо), предоставляющуюнабор Web-служб. В частности, он содержит название (имя), адрес, контакты, профиль, т.е.характеристику области ее (его) деятельности.•businessService. Это список Web-служб, предоставляемых некоторой организацией.•bindingTemplate. Описывает технические аспекты предоставляемых служб, в частности,адреса, к которым нужно обращаться, списки дополнительных описаний (tModels).•tModel (technical model).
Содержит дополнительную информацию о службе, в частности,предоставляемые ею услуги, условия и ограничения ее использования, предоставляемыегарантии и пр.Помимо структуры реестра, UDDI определяет интерфейс для работы с ним, позволяющийпубликовать или удалять информацию о предоставляемых службах, изменять собственника служб,искать нужные службы по набору характеристик и т.д.ПроцессыПоскольку Web-службы считаются совершенно независимыми от реализации компонентами, ауправление процессами и потоками сильно зависит от платформы, в контексте Web-служб они нерассматриваются. Можно считать, что каждый экземпляр Web-службы работает в своемотдельном процессе, к которому не имеют доступа все остальные экземпляры других Web-службили той же самой службы.Синхронизация и целостностьБазовые и общепризнанные стандарты построения Web-служб (WSDL, SOAP и UDDI) нерассматривают вопросы синхронизации работы нескольких Web-служб.
В то же время, этивопросы очень важны при построении одних служб на базе других и разработке приложений изнаборов взаимодействующих Web-служб.Одной из попыток стандартизации протоколов совместной работы Web-служб являетсятехнология WS-Coordination (Web Services Coordination) [18,26]. Она предлагает набор протоколов,языков и инфраструктуру их использования, совместно позволяющих описывать и осуществлятьсинхронизацию и координацию нескольких Web-служб, которые работают над одной задачей.Для обеспечения целостности при совместной работе нескольких служб могут использоватьсятехнологии на основе стандартов WS-Transactions и WS-BusinessActivity [18,26], построенных набазе WS-Coordination.Задачи синхронизации могут решаться с помощью средств, помогающих строить приложенияна основе композиции Web-служб или при помощи их «оркестровки» (web servicesorchestration) [18].
Одним из таких подходов является BPEL (Business Process Execution Language,язык исполнения бизнес-процессов) [18,27]. Это графический язык, дающий возможность описатьдостаточно сложные потоки работ, каждая из которых выполняется отдельной службой, искомпилировать такое описание в реализацию новой Web-службы.ОтказоустойчивостьВозможность обеспечения отказоустойчивости Web-служб заложена в архитектуруприложений на их основе. Ее можно добиться дублированием их реализаций и регистрациейнескольких точек доступа к службам, реализующим один и тот же интерфейс.282Для обеспечения отказоустойчивости при передаче сообщений разрабатываетсядополнительный стандарт WS-Reliability [28], расширяющий SOAP.
Использование WS-Reliabilityпозволяет гарантировать доставку сообщений, используемых в работе Web-служб.ЗащитаНаиболее вероятным кандидатом на место широко используемого стандарта защитыинформации, передаваемой в сообщениях при работе с Web-службами, является стандарт WSSecurity [18,29].Он расширяет SOAP, добавляя в заголовки сообщений этого протокола информацию, спомощью которой можно подтвердить целостность сообщения, подтвердить личность отправителяили затруднить доступ к его содержанию для третьих партий, определив алгоритм шифрованиясодержимого.Литература к Лекции 15[1] Java Platform Enterprise Edition Specifications, version 5. Доступны черезhttp://java.sun.com/j2ee/5.0/index.jsp.[2] Web-сайт проекта Apache Struts http://struts.apache.org/.[3] C. Cavaness.
Programming Jakarta Struts. O’Reilly, 2002.[4] Java Server Faces Specification, version 1.2. Доступна наhttp://java.sun.com/j2ee/javaserverfaces/download.html.[5] H. Bergsten. JavaServer Faces. O’Reilly, 2004.[6] Спецификации J2EE 5.0. Доступны через http://java.sun.com/javaee/5/javatech.html.[7] Web-сайт проекта Hibernate http://www.hibernate.org/.[8] C. Bauer, G. King. Hibernate in Action. Manning, 2004.[9] B.
A. Tate, J. Gehtland. Better, Faster, Lighter Java. O’Reilly, 2004.[10] Web-сайт технологии JDO http://jdocentral.com/.[11] D. Jordan, C. Russell. Java Data Objects. O’Reilly, 2003.[12] Спецификации Enterprise Java Beans 3.0. Доступны черезhttp://java.sun.com/products/ejb/docs.html.[13] Web-сайт проекта Spring http://www.springframework.org/.[14] R. Johnson.
Expert One-on-One J2EE Design and Development. Wrox, 2002.[15] R. Johnson, J. Hoeller, A. Arendsen, T. Risberg, C. Sampaleanu. Professional Java Developmentwith the Spring Framework. Wiley, 2005.[16] http://developer.mozilla.org/en/docs/Category:AJAX:Articles.[17] D. Crane, E. Pascarello, D. James. Ajax in Action. Manning, 2005.[18] G. Alonso, F.
Casati, H. Kuno, V. Machiraju. Web Services. Concepts, Architectures andApplications. Springer-Verlag, 2004.Сайт этой книги http://www.inf.ethz.ch/personal/alonso/WebServicesBook.[19] Сайт IBM, посвященный Web-службам и SOA. http://www128.ibm.com/developerworks/webservices/.[20] Э.
Ньюкомер. Веб-сервисы. Для профессионалов. СПб.: Питер, 2003.[21] Х. Дейтел, П. Дейтел, С. Сантри. Технологии программирования на Java 2. Книга 3:Корпоративные системы, сервлеты, JSP, Web-сервисы. М.: Бином, 2003.[22] А. Феррара, М. Мак-Дональд. Программирование web-сервисов для .NET. СПб.: ПитерBHV, 2003.[23] Спецификации WSDL 1.1 http://www.w3.org/TR/wsdl.[24] Спецификации SOAP 1.2 http://www.w3.org/TR/soap/.[25] Web-сайт стандарта OASIS UDDI http://www.uddi.org/.[26] Спецификации WS-Coordination, WS-Transactions и WS-BusinessActivity.
Доступны черезhttp://www-128.ibm.com/developerworks/library/specification/ws-tx/.[27] Спецификации BPEL. Доступны через http://www128.ibm.com/developerworks/library/specification/ws-bpel/.283[28] Спецификации WS-Reliability. http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=wsrm.[29] Спецификации WS-Security. http://www-128.ibm.com/developerworks/webservices/library/wssecure/.284Лекция 16. Управление разработкой ПОАннотацияРассматриваются основные деятельности, входящие в компетенцию руководителей проектов. Вобщем рассказе о некоторых аспектах управления ресурсами, персоналом, рисками икоммуникациями проекта выделены особенности управления проектами по созданию ПО.Ключевые словаОрганизационная культура, структура организации, заинтересованные лица, спонсор, менеджер,заказчик, пользователь, команда проекта, цели проекта, содержание проекта, ресурсы,иерархическая структура работ, метрики сложности ПО, COCOMO II, сетевая диаграмма, PERTдиаграмма, диаграмма Ганта, критический путь, мотивация персонала, сплоченная команда,управление рисками, разрешение конфликтов, ведение переговоров.Текст лекцииЗадачи управления проектамиЭта лекция посвящена управлению проектами по разработке, поддержке или модификациипрограммного обеспечения.
С достаточно общих позиций можно считать задачей управленияпроектами эффективное использование ресурсов для достижения нужных результатов. Всегданужно получить как можно более хорошие результаты, используя при этом как можно меньшересурсов. При этом в первую очередь возникают два вопроса: что именно считается «хорошим»результатом проекта и чем, какими ресурсами, можно пользоваться для его достижения.Чтобы ответить на вопрос о том, какими критериями руководствуются при оценке проектов, ичего нужно добиваться, надо рассмотреть его с разных аспектов.Одним из самых важных критериев является экономическая эффективность проекта, т.е.отношение суммы доходов разного рода, полученных в его результате, ко всем затраченнымресурсам. К сожалению, эти доходы чаще всего невозможно определить заранее.
Поэтому приоценках проекта вместо дохода от его результатов рассматривают качество создаваемого ПО вовсех его аспектах, т.е. набор имеющихся функций, надежность работы, производительность,удобство для всех категорий пользователей, а также удобство расширения и внесения изменений.Характеристики качества должно соотноситься с требованиями рынка или заказчика и с ужеимеющимися продуктами.С более общих позиций и экономические, и неэкономические показатели результативностипроекта объединяют в понятие ценностей, создаваемых в его ходе.