Разработка сервисов для информационной системы страховой компании на базе SOA-архитектуры

Автор работы: Пользователь скрыл имя, 13 Января 2013 в 22:36, дипломная работа

Краткое описание

Дипломный проект рассматривает вопросы автоматизации, направленные на решение основных проблем в бизнесе страховой компании, занимающейся добровольным медицинским страхованием.
Целью дипломного проекта является повышение эффективности бизнеса страховой компании за счет увеличения гибкости её информационной системы.

Содержание

Введение 9
Цель дипломного проекта 17
Постановка задачи 17
1 Специальная часть 19
1.1 Обоснование выбора сервис-ориентированной архитектуры 19
1.2 Выбор инструментальных средств проектирования и разработки 32
1.2.1 Обоснование выбора средств моделирования бизнес процессов 32
1.2.2 Обоснование выбора CASE средств проектирования 37
1.2.3 Обоснование выбора СУБД 38
1.2.4 Набор программных средств, используемых в ходе дипломного проектирования 38
1.3 Используемые методы и стандарты 39
1.3.1 Разработка, управляемая моделями 39
1.3.2 Независимость от платформы 42
1.3.3 Программная платформа 43
1.3.4 Модель требований FURPS 44
1.4 Формирование требований к разрабатываемой системе 46
1.4.1 Проект требований 47
1.5 Моделирование бизнес-процессов 49
1.5.1 Моделирование бизнес процесса как есть 49
1.5.2 Анализ бизнес-процессов «как есть». 53
1.5.3 Результаты имитации 55
1.5.4 Моделирование бизнес-процессов «как должно быть» 58
1.5.5 Анализ модели «как должно быть». Сравнение результатов 59
1.6 Разработка UML-модели системы 61
1.6.1 Трансформация модели бизнес процессов в UML-модель 61
1.6.2 Модификация полученной в результате трансформации UML-модели 63
1.7 Разработка сервисной модели 69
1.7.1 Трансформация в сервисную модель 69
1.7.2 Идентификация сервисов 71
1.7.3 Моделирование сервисов 73
1.8 Разработка базы данных 77
1.8.1 Трансформация UML-модели в логическую модель данных 77
1.8.2 Получение окончательной логической модели данных 81
1.8.3 Разработка физической модели данных 82
1.8.4 Генерация базы данных на основе физической модели данных 84
1.9 Реализация сервисов 85
1.10 Выводы 87
2 Экономическая часть 89
2.1 Экономическая эффективность от внедрения сервисов, реализованных на базе сервис-ориентированной архитектуры. 89
2.1.1 Абсолютный показатель изменения годовой трудоемкости обработки информации в результате внедрения SOA-решения для процесса заключения договора страхования 90
2.1.2 Абсолютный показатель изменения годовых затрат на обработку информации в результате внедрения SOA-решения для процесса заключения договора страхования 91
2.1.3 Относительные показатели изменения годовой трудоемкости и годовых затрат на обработку информации в результате внедрения проекта 97
2.1.4 Расчетный коэффициент эффективности единовременных затрат на разработку и внедрение проекта 98
2.1.5 Срок окупаемости единовременных затрат на разработку и внедрение проекта 104
2.2 Выводы 104
3 Экологическая часть и безопасность жизнедеятельности 105
3.1 Требования к организации рабочего места пользователя (сотрудника страховой компании) 105
3.2 Вредные излучения при работе компьютера и способы их минимизации 113
3.3 Заболевания, развивающиеся при работе за компьютером, и их профилактика 116
3.4 Выводы 118
Заключение 120
Список использованной литературы 122
Приложение А. 126
Проект требований 126
Приложение Б. 129
Модель бизнес-процессов 129
Приложение В. 139
Трансформированная модель бизнес-процессов в UML-модель 139
Приложение Г. 155
Трансформированная сервисная модель 155
Приложение Д. 162
WSDL описания сервисов 162
Приложение Е. 178
Исходный Java-код сервисов 178
Приложение Ж. 191
Логическая модель данных, полученная путем трансформации UML-модели 191
Приложение И. 202
SQL скрипт для генерации схемы базы данных 202

Вложенные файлы: 1 файл

bovkunovich-diplom.doc

— 4.75 Мб (Скачать файл)

            <element name="medid" nillable="true" type="xsd:int"/>

            <element name="crtdate" nillable="true" type="xsd:date"/>

            <element name="upddate" nillable="true" type="xsd:date"/>

            <element name="claimcomment" nillable="true" type="xsd:string"/>

          </sequence>

        </complexType>

      </element>

      <element name="CREATECLAIMResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="DELETCLAIM">

        <complexType>

          <sequence>

            <element name="claimid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="DELETCLAIMResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="FINDCLAIMBYINSURED">

        <complexType>

          <sequence>

            <element name="insurid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="FINDCLAIMBYINSUREDResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="GETCLAIM">

        <complexType>

          <sequence>

            <element name="claimid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="GETCLAIMResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDCLAIM">

        <complexType>

          <sequence>

            <element name="claimcomment" nillable="true" type="xsd:string"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDCLAIMResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDCLAIMSTATUS">

        <complexType>

          <sequence>

            <element name="status" nillable="true" type="xsd:string"/>

            <element name="claimid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDCLAIMSTATUSResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

    </schema>

  </wsdl:types>

  <wsdl:message name="CREATECLAIMSoapInput">

    <wsdl:part element="tns:CREATECLAIM" name="request"/>

  </wsdl:message>

  <wsdl:message name="CREATECLAIMSoapOutput">

    <wsdl:part element="tns:CREATECLAIMResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="DELETCLAIMSoapInput">

    <wsdl:part element="tns:DELETCLAIM" name="request"/>

  </wsdl:message>

  <wsdl:message name="DELETCLAIMSoapOutput">

    <wsdl:part element="tns:DELETCLAIMResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="FINDCLAIMBYINSUREDSoapInput">

    <wsdl:part element="tns:FINDCLAIMBYINSURED" name="request"/>

  </wsdl:message>

  <wsdl:message name="FINDCLAIMBYINSUREDSoapOutput">

    <wsdl:part element="tns:FINDCLAIMBYINSUREDResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="GETCLAIMSoapInput">

    <wsdl:part element="tns:GETCLAIM" name="request"/>

  </wsdl:message>

  <wsdl:message name="GETCLAIMSoapOutput">

    <wsdl:part element="tns:GETCLAIMResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="UPDCLAIMSoapInput">

    <wsdl:part element="tns:UPDCLAIM" name="request"/>

  </wsdl:message>

  <wsdl:message name="UPDCLAIMSoapOutput">

    <wsdl:part element="tns:UPDCLAIMResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="UPDCLAIMSTATUSSoapInput">

    <wsdl:part element="tns:UPDCLAIMSTATUS" name="request"/>

  </wsdl:message>

  <wsdl:message name="UPDCLAIMSTATUSSoapOutput">

    <wsdl:part element="tns:UPDCLAIMSTATUSResponse" name="response"/>

  </wsdl:message>

  <wsdl:portType name="ClaimWS">

   <wsdl:operation name="CREATECLAIM">

      <wsdl:input message="tns:CREATECLAIMSoapInput"/>

      <wsdl:output message="tns:CREATECLAIMSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="DELETCLAIM">

      <wsdl:input message="tns:DELETCLAIMSoapInput"/>

      <wsdl:output message="tns:DELETCLAIMSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="FINDCLAIMBYINSURED">

      <wsdl:input message="tns:FINDCLAIMBYINSUREDSoapInput"/>

      <wsdl:output message="tns:FINDCLAIMBYINSUREDSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="GETCLAIM">

      <wsdl:input message="tns:GETCLAIMSoapInput"/>

      <wsdl:output message="tns:GETCLAIMSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="UPDCLAIM">

      <wsdl:input message="tns:UPDCLAIMSoapInput"/>

      <wsdl:output message="tns:UPDCLAIMSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="UPDCLAIMSTATUS">

      <wsdl:input message="tns:UPDCLAIMSTATUSSoapInput"/>

      <wsdl:output message="tns:UPDCLAIMSTATUSSoapOutput"/>

    </wsdl:operation>

  </wsdl:portType>

  <wsdl:binding name="ClaimWSSOAP" type="tns:ClaimWS">

    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

    <wsdl:operation name="CREATECLAIM">

      <soap:operation soapAction="urn:example/CREATECLAIM"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="DELETCLAIM">

      <soap:operation soapAction="urn:example/DELETCLAIM"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="FINDCLAIMBYINSURED">

      <soap:operation soapAction="urn:example/FINDCLAIMBYINSURED"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="GETCLAIM">

      <soap:operation soapAction="urn:example/GETCLAIM"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="UPDCLAIM">

      <soap:operation soapAction="urn:example/UPDCLAIM"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="UPDCLAIMSTATUS">

      <soap:operation soapAction="urn:example/UPDCLAIMSTATUS"/>

      <wsdl:input>

        <soap:body use="literal"/>

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal"/>

     </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="ClaimWS">

    <wsdl:port binding="tns:ClaimWSSOAP" name="ClaimWSSOAPHTTP">

      <soap:address location="http://localhost:8080/Diplom_DSClaimWS/services/ClaimWS"/>

    </wsdl:port>

  </wsdl:service>

</wsdl:definitions>

 

WSDL описание сервиса Diplom_DSPolicyWS.war:

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions targetNamespace="urn:example" xmlns:dsc="http://ibm.com/datatools/dsws/config" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:example" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <wsdl:types>

    <schema targetNamespace="urn:example" xmlns="http://www.w3.org/2001/XMLSchema">

      <complexType name="anonymousResultSetType">

        <sequence>

          <element maxOccurs="unbounded" minOccurs="0" name="row">

            <complexType>

              <sequence maxOccurs="unbounded" minOccurs="0">

                <any processContents="skip"/>

              </sequence>

            </complexType>

          </element>

        </sequence>

      </complexType>

      <element name="ADDPROGPOL">

        <complexType>

          <sequence>

            <element name="progid" nillable="true" type="xsd:int"/>

            <element name="polid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="ADDPROGPOLResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="CREATEPOLICY">

        <complexType>

          <sequence>

            <element name="whichQuery" nillable="true" type="xsd:int"/>

            <element name="progid" nillable="true" type="xsd:int"/>

            <element name="datestart" nillable="true" type="xsd:date"/>

            <element name="dateend" nillable="true" type="xsd:date"/>

            <element name="summcost" nillable="true" type="xsd:decimal"/>

            <element name="insur_id" nillable="true" type="xsd:int"/>

            <element name="payer_id" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="CREATEPOLICYResponse">

        <complexType>

          <sequence>

            <element name="polid" nillable="true" type="xsd:int"/>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="DELETEPOLICY">

        <complexType>

          <sequence>

            <element name="whichQuery" nillable="true" type="xsd:int"/>

            <element name="polid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="DELETEPOLICYResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="GETALLPOLICYINFO">

        <complexType>

          <sequence>

            <element name="whichQuery" nillable="true" type="xsd:int"/>

            <element name="polid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="GETALLPOLICYINFOResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDATEPOLICY">

        <complexType>

          <sequence>

            <element name="datestart" nillable="true" type="xsd:date"/>

            <element name="dateend" nillable="true" type="xsd:date"/>

            <element name="summcost" nillable="true" type="xsd:decimal"/>

            <element name="whichQuery" nillable="true" type="xsd:int"/>

            <element name="progid" nillable="true" type="xsd:int"/>

            <element name="polid" nillable="true" type="xsd:int"/>

          </sequence>

        </complexType>

      </element>

      <element name="UPDATEPOLICYResponse">

        <complexType>

          <sequence>

            <element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType"/>

          </sequence>

        </complexType>

      </element>

    </schema>

  </wsdl:types>

  <wsdl:message name="ADDPROGPOLSoapInput">

    <wsdl:part element="tns:ADDPROGPOL" name="request"/>

  </wsdl:message>

  <wsdl:message name="ADDPROGPOLSoapOutput">

    <wsdl:part element="tns:ADDPROGPOLResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="CREATEPOLICYSoapInput">

    <wsdl:part element="tns:CREATEPOLICY" name="request"/>

  </wsdl:message>

  <wsdl:message name="CREATEPOLICYSoapOutput">

    <wsdl:part element="tns:CREATEPOLICYResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="DELETEPOLICYSoapInput">

    <wsdl:part element="tns:DELETEPOLICY" name="request"/>

  </wsdl:message>

  <wsdl:message name="DELETEPOLICYSoapOutput">

    <wsdl:part element="tns:DELETEPOLICYResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="GETALLPOLICYINFOSoapInput">

    <wsdl:part element="tns:GETALLPOLICYINFO" name="request"/>

  </wsdl:message>

  <wsdl:message name="GETALLPOLICYINFOSoapOutput">

    <wsdl:part element="tns:GETALLPOLICYINFOResponse" name="response"/>

  </wsdl:message>

  <wsdl:message name="UPDATEPOLICYSoapInput">

    <wsdl:part element="tns:UPDATEPOLICY" name="request"/>

  </wsdl:message>

  <wsdl:message name="UPDATEPOLICYSoapOutput">

    <wsdl:part element="tns:UPDATEPOLICYResponse" name="response"/>

  </wsdl:message>

  <wsdl:portType name="PolicyWS">

    <wsdl:operation name="ADDPROGPOL">

      <wsdl:input message="tns:ADDPROGPOLSoapInput"/>

      <wsdl:output message="tns:ADDPROGPOLSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="CREATEPOLICY">

      <wsdl:input message="tns:CREATEPOLICYSoapInput"/>

      <wsdl:output message="tns:CREATEPOLICYSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="DELETEPOLICY">

      <wsdl:input message="tns:DELETEPOLICYSoapInput"/>

      <wsdl:output message="tns:DELETEPOLICYSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="GETALLPOLICYINFO">

      <wsdl:input message="tns:GETALLPOLICYINFOSoapInput"/>

      <wsdl:output message="tns:GETALLPOLICYINFOSoapOutput"/>

    </wsdl:operation>

    <wsdl:operation name="UPDATEPOLICY">

      <wsdl:input message="tns:UPDATEPOLICYSoapInput"/>

      <wsdl:output message="tns:UPDATEPOLICYSoapOutput"/>

    </wsdl:operation>

  </wsdl:portType>

Информация о работе Разработка сервисов для информационной системы страховой компании на базе SOA-архитектуры