2009-11-23 14 views
6

Często słyszę, że architektura zorientowana na usługi (SOA) jest używana jako modne hasło wśród klientów nietechnicznych lub menedżerów programów z niewielkim zainteresowaniem lub zrozumieniem tego, co w rzeczywistości pociąga za sobą (przykład: "Czy mogę kupić? SOA? "). Istnieje również wiele dezinformacji na temat architektury SOA (przykład: "Tylko aplikacje internetowe mogą korzystać z architektury SOA") oraz ogólny brak zrozumienia dla jej możliwości (przykład: "SOA może sprawić, że wszystkie dane będą współpracować ze sobą").Pomaganie menedżerom i klientom w zrozumieniu SOA

Jakie są kluczowe fakty, że jako osoba rozumiejąca techniczną stronę architektury SOA, używasz do edukowania menedżerów programów o właściwym używaniu i rozumieniu SOA? Jaki jest najlepszy sposób na wyprostowanie zapisu w przypadku osób nietechnicznych?

+1

Oczekuję komentarzy "zrób to społeczność wiki" ... Twierdzę, że najlepsza (czyli najbardziej kompletna/dobrze przemyślana) odpowiedź powinna zdobyć najwięcej głosów i być zaakceptowana jako odpowiedź –

Odpowiedz

4

Dla osób nietechnicznych użyłbym następującej koncepcji. Cały świat zawodowy jest zorientowany na usługi.

  • Zamiast pieczenia ciasteczka przez się, idziesz do piekarza.
  • Zamiast próbować wyleczyć się, idziesz do lekarza.
  • Zamiast pisać program, musisz poprosić programistę, aby zrobił to dla ciebie .

Oznacza to dwie główne zalety:

  • Każdy robi jego zadanie lepiej, niż gdyby wszyscy starali się rozwiązać wszystkie nasze zadania oddzielnie.
  • Jest na to sposób, który pozwala nie specjalistów, aby komunikować się z tych, którzy rozwiążą nasze zadanie (w realnym świecie z takich sposobów jest pieniądz i umowy handlowe)

W świecie oprogramowania takiego Architektura jest implementowana poprzez definiowanie wyspecjalizowanych usług (aplikacji), które są dedykowane do wykonywania określonych zadań i poprzez definiowanie protokołów, które rozwiązują problem komunikacji między takimi aplikacjami. Gdy taka architektura jest wdrożony, można uzyskać pewne korzyści, które mogą być odwzorowane do realnego świata:

  • Jeśli lekarz nie jest dostępna, nie można być wyleczona, ale przynajmniej można dostać cookie z piekarnia! W oprogramowaniu oznacza to, że jedna nieudana usługa nie powoduje przerwania całego systemu.

  • Zazwyczaj lekarze i piekarze nie dzielą tego samego pokoju, co pozwala im lepiej funkcjonować. Podobnie jak w oprogramowaniu, możesz umieścić każdą usługę na swoim sprzęcie.

Dla świata oprogramowania oznacza to większą dostępność, łatwość konserwacji, ponowne użycie i obniżenie kosztów. Powodzenia!

0

Może masz jakieś aplikacje w swojej firmie do wykorzystania jako demonstracja.

Spróbuj pokazać im pełny obraz z dużą ilością luźno zależnych usług z pewnymi wspólnymi potrzebami/funkcjami tworzonymi przez różne zespoły i wyciągając te wbudowane, ale często używane funkcje i wykorzystując je jako dostawców usług.

Inną rzeczą, która przyszła mi do głowy to pokazanie im różnych konektorów, z których usługi mogą się komunikować (być może istnieją naprawdę stare screencrapingowe aplikacje starsze). Ponadto należy wyjaśnić koncepcję magistrali komunikatów z normalizacją i obsługą transakcji. Moim zdaniem, osoby nietechniczne powinny postrzegać tę całą koncepcję SOA jako luźno powiązane usługi rozmawiające ze sobą za pomocą dowolnych komunikatów, w których usługi są pisane/zarządzane/zarządzane przez różne zespoły (w związku z czym formalne deklaracje usług i umowy SLA mogą się przydać) .

Staraj się unikać wspominania o sprzedawcach, jeśli to możliwe. Lub wspomnieć o wielu dostawcach i technologiach dla każdej części, aby pokazać im różne opcje.

1

"SOA to jak zatrudnianie nowych pracowników, gdy praca staje się zbyt duża dla obecnego zespołu." Każda część całego systemu jest analogiczna do pracownika. Menedżerowie rozumieją pracowników;)

Powiązane problemy