Integracja Systemów Informacyjnych (projekt)

W ramach zajęć studenci realizują projekt (tematyka i wiodąca technologia dowolna) wykorzystujacy zewnętrzne systemy w celu spełnienia wymagań wyspecyfikowanych na początku semestru.

Wymagania dotyczące projektu:

  • Opracowanie rozproszonego systemu informacyjnego (min. 3 moduły), którego moduły komunikują się między sobą za pomocą zaprojektowanego API
  • Zamodelowanie procesów biznesowych związanych z planowaną integracją za pomocą języka BPMN
  • Integracja z minimum dwiema usługami zewnętrznymi (np. Google Maps, PayU, …) z wykorzystaniem udostepnianych publicznie API
  • Utworzenie własnego API w zakresie
    • wykorzystania architektury REST
    • wykorzystania specyfikacji OpenAPI
    • wykorzystania XML Schema oraz mechanizmu XSLT, zapytań XPath
  • Wykorzystanie mechanizmów zdalnego wywoływania procedur, np. w oparciu o JSON-RPC, gRPC (protobuf).
  • Wykorzystanie kolejek komunikatów (Message-Oriented Middleware, np. RabbitMQ, Apache Kafka, Apache ActiveMQ, NATS, … )
  • Wykorzystanie szyny ESB (np. Zato lub Mule) (opcjonalnie)
  • Wykorzystanie mechanizmu autoryzacji opartego o protokół OAuth 2.0 (opcjonalnie)
  • Zgodność implementacji usług z metodyką The Twelve-Factor App

Przydział tematów jest unikatowy dla każdej grupy projektowej. Grupy projektowe składają się z 3 osób.

Dopuszczone są dwie nieusprawiedliwione nieobecności na zajęciach. Każda kolejna skutkuje obniżeniem oceny końcowej o 0.5.

Ocenie podlegać będzie ogólny postęp w pracach. Na każdych zajęciach grupy prezentują wyniki prac nad kolejnymi etapami projektu. Na każdych zajęciach (za wyjątkiem pierwszych) otrzymać będzie można od 0 do 10 punktów.

Końcowa ocena jest ustalana na podstawie stosunku zdobytych punktów do wszystkich punktów możliwych do zdobycia podczas zajęć:

Punkty (50%, 60%) <60%,70%) <70%,80%) <80%, 90%) <90%, 100%>
Ocena dst dst+ db db+ bdb

Na ostatnich zajęciach odbywa się prezentacja zrealizowanego projektu w formie krótkiego seminarium

Harmonogram prac (ogólny i przykładowy):
  1. Zajęcia organizacyjne.
  2. Prezentacja wybranego tematu, analiza tematu, dyskusja.
  3. Architektura systemów podlegających integracji, identyfikacja podstawowych procesów.
  4. Modelowanie procesów integracyjnych w BPMN.
  5. Modelowanie procesów integracyjnych w BPMN.
  6. Identyfikacja wykorzystywanych struktur wymiany danych, standardów oraz protokołów.
  7. Prace implementacyjne.
  8. Prace implementacyjne.
  9. Prace implementacyjne.
  10. Prace implementacyjne.
  11. Prace implementacyjne.
  12. Prace implementacyjne.
  13. Prace implementacyjne.
  14. Weryfikacja możliwości wykonania zamodelowanych procesów biznesowych.
  15. Seminarium końcowe.

Literatura

  • OMG: BPMN 2.0 By Example
  • Gregor Hohpe, Bobby Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  • Simon Brown, Software architecture for developers
  • Sam Newman, Budowanie mikrousług
  • Susan Fowler, Mikrousługi : wdrażanie i standaryzacja systemów w organizacji inżynierskiej
  • Kevin Howard Goldberg, XML: przewodnik po świecie XML.
  • Bruce Morgan, Mikroserwisy w akcji
  • Matjaz B. Juric, Business process driven SOA using BPMN and BPEL.
  • Kasun Indrasiri, Prabath Siriwardena, Microservices for the Enterprise: Designing, Developing, and Deploying
  • Thomas Hunter, Advanced Microservices: A Hands-On Approach to Microservice Infrastructure and Tooling
  • Sanjay Patni, Pro RESTful APIs: Design, Build and Integrate with REST, JSON, XML and JAX-RS