Odpowiedź na to jest tak zawsze "to zależy ..." pozwól mi wyjaśnić co mam na myśli.
Wywołanie innej usługi w architekturze SOA jest oczywiście całkowicie do przyjęcia, w centrum SOA leży możliwość tworzenia nowych elementów z istniejących usług.
Ważniejszą częścią jest to, jak wywołuje się usługi, należy rozważyć system SOA, w którym wiele usług współpracuje z każdym łańcuchem wywołań, nawiązując połączenie z innymi w zakresie transakcji. Robienie tego typu rzeczy bez dokładnego planowania będzie miało ogromny wpływ na wydajność twojego systemu. Ten sam łańcuch wywołań, zaprojektowany z wykorzystaniem dobrze podzielonych na partycje usług, o zasięgu w odpowiedniej jednostce pracy, jest mniejszy.
Rozważmy solidność systemu, w typowej architekturze jedna usługa staje się bardziej popularna niż inne i ląduje na wiele innych usług, które ją nazywają. Awaria tej jednej usługi obniża cały system, ponieważ wszystkie inne usługi są zależne od połączenia z tą jedną usługą.
Rozważ różnicę między połączeniami synchronicznymi i asynchronicznymi, kiedy używasz czegoś? To jest wpływ każdego?
W jaki sposób projektujesz i dzielisz usługi w celu ograniczenia kosztów przekraczania granicy usługi przy każdym połączeniu?
Wiele pytań, ale jeśli się rozejrzysz, jest wiele miejsc, w których można znaleźć odpowiedzi, sugeruję zacząć od tych.
Proponuję przeczytać artykuły Thomasa Erla i Rogera Sessions, to da ci mocną odpowiedź na temat tego, czym jest SOA.
Building a SOA
SOA Design Pattern
Achieving integrity in a SOA
Why your SOA should be like a VW Beetle
SOA explained for your boss
WCF Service Performance
ci nie sądzę, że biorąc pod uwagę, że architektura powinna być odpowiednio wycięta w pionie, stworzy to architekturę spaghetti? – iwayneo
Myślę, że jeśli uruchomisz piły pionowo przez swoje serwery, będziesz miał inne problemy. Uważam też, że makaron będzie zły dla wewnętrznych elementów. Czy masz konkretne przykłady problemów, które Twoim zdaniem mogą się pojawić? – Mark
Mam jeden problem, na przykład jeśli na mojej stronie internetowej, wywołuję usługę wcf, która wywołuje usługę wcf, która może potencjalnie wywoływać usługę wcf ... itd. Itd. – iwayneo