Dlaczego serwisu bez stanu stateless są beznadziejne. I co ma do tego dapr.
Architektura 1226 dni, 5 godzin, 19 minut temu 71 źrodło rozwiń
In previous posts I’ve talked about a problem which I’ve seen many times – modern coupling. In this post I will give you a list of tools for discovering proper service boundaries that will reduce that coupling to its minimum.
Architektura 1301 dni, 4 godziny, 18 minut temu 79 źrodło rozwiń
We’ve all seen systems that were tightly coupled, and maybe you are working in that kind of system right now. It seems that keeping codebase without high coupling its hard. Because most of the systems ends as not maintainable mess, we just need some time to make it like that. And I want to be clear, I’m not trying blaming any of you because I’ve done the same. But after 60 years from when coupling was invented, I think it’s time to stop chasing the newest technologies and focus on what is causing those p...
Architektura 1360 dni, 3 godziny, 21 minut temu 73 źrodło rozwiń
W dzisiejszych czasach wiele firm/deweloperów/architektów decyduje się na rozpraszanie aplikacji. Decyzje te spowodowane są często tym, aby zachęcić specjalistów do dołączenia do firmy i projektu, reklamując ją jako nowoczesną, podążającą za nowoczesnymi rozwiązaniami. Z biznesowego punktu widzenia najprawdopodobniej ma to sens, ponieważ na rynku brakuje specjalistów, a projekt, który na papierze wygląda, że rozwiązuje problemy skali, wydaje się ciekawy i nietrywialny. Oczywiście zdarza się, że rozprosze...
Architektura 1606 dni, 4 godziny, 45 minut temu 102 źrodło rozwiń
What I learned from $2500 Udi Dahan course Around the beginning of April 2020 Udi Dahan, owner of Particular Software, released his course in a form of online videos, for free. The big deal is that Udi is one of the world’s foremost experts on Service-Oriented Architecture, Distributed Systems, and Domain-Driven Design. This was a trigger for me and my whole team to watch the course and have a weekly discussion session to talk through completed chapters. Here is what I learned.Use messaging In his cour...
Architektura 1606 dni, 4 godziny, 45 minut temu 134 źrodło rozwiń
Service Fabric to uniwersalna platforma do hostowania i zarządzania usługami i aplikacjami, używana zarówno w Azure jak i "na premisach". Zachęcam do zapoznania się ze sposobem, w jaki hostowane są aplikacje napisane jako serwisy Service Fabric.
Ostatnio na blogu sporo o SOA. W poprzednim wpisie, poruszyłem temat kompatybilności, teraz czas na coś, co ma na celu zminimalizowanie ilości różnych wersji usług. Najprostszym sposobem na uniknięcie problemów z kompatybilnością jest po prostu nie wprowadzenie niekompatybilnych zmian. Consumer-driven contracts to prosty sposób, aby mieć pod kontrolą śledzenie zmian oraz ich wpływ na konsumentów naszej usługi. Zwykle usługi posiadają pewien schemat (schema) czyli po prostu kontrakt. Najbardziej restry...
Programowanie rozproszone 3474 dni, 3 godziny, 53 minuty temu 94 źrodło rozwiń
Autor: Tytuł artykułu zdradza nieco temat jaki chciałbym podjąć. Może samo versus jest nieco przewrotne, gdyż bardziej odpowiednie byłoby “Spring.NET a WCF” czy też po prostu “Spring.NET i WCF”. Tak naprawdę to tytuł powinien brzmieć “Spring.NET a WCF versus programista” ;). Obserwując programistów zaczynających przygodę ze Spring.NET i próbujących zintegrować z tym framew...
Programowanie rozproszone 5514 dni, 5 godzin, 24 minuty temu 162 źrodło rozwiń
Chciałbym podzielić się z Wami moimi refleksami po obejrzeniu prezentacji Martina Fowlera i Jima Webbera zatytułowanej "Does My Bus Look Big in This?". Prezentacja ta odbywała się podczas konferencji QCon w Londynie w 2008 roku. Minęło już sporo czasu, jednak główne przesłanie nie straciło nic ze swojej aktualności. A przesłaniem tym jest: nie potrzebujemy wielkich, ciężkich i kosztownych produktów ESB! Pierwsza część prezentacj poświęcona jest charakteryzacji typowego pr...
Architektura 5560 dni, 21 godzin, 35 minut temu 20 źrodło rozwiń
Na Microsoft Worldwide Partner Conference 2009, Bob Muglia, szef Server and Tools Business w Microsoft, ogłosił, że firma chce wprowadzić Windows Azure do fazy produkcyjnej jeszcze w tym roku! Dodatkowo, na oficjalnej stronie Windows Azure, zostały ogłoszone cenniki korzystania z usługi. Ceny, w porównaniu z konkurencją, są średnie. Spodziewałem się czegoś bardziej rewolucyjnego ze strony Microsoft’u. Oprócz tradycyjnych marketingowych sloganów, pojawiła się również informacja o 5%-owej zniżce dla partne...
Programowanie rozproszone 5599 dni, 5 godzin, 49 minut temu 27 źrodło rozwiń
W jaki sposób pokonać ograniczenia standardowego protokołu inwentarza usług, nie łamiąc przy tym zgodności ze standardami? Wzorzec Canonical Protocol zaleca wykorzystania jednego, standardowego, protokołu do komunikacji między usługami w ramach jednego inwentarza. Domyślnie oczywiście, protokołem tym są jakiegoś rodzaju usługi webowe (Basic WS, WS-*, REST), jednak nie jest to twarde wymaganie. Niezależnie od wyboru standardowego protokołu, mogą zdarzyć się sytuacje, kiedy jest on z jakichś przyczyn ni...
Programowanie rozproszone 5599 dni, 21 godzin, 28 minut temu 28 źrodło rozwiń
W jaki sposób rozwiązanie oparte o usługi może dostarczyć interaktywny interfejs użytkownika? Rozwiązaniem jest specjalna usługa Mediatora, która jest umieszczana pomiędzy kodem interfejsu użytkownika, a rzeczywistą usługą dostarczającą funkcjonalności biznesowej. Mediator jest odpowiedzialny za dostarczanie użytkownikowi informacji o stanie zainicjowanego przez niego procesu oraz o wszelkich zdarzeniach występujących w trakcie jego działania. Mediator może być zrealizowany na dwa sposoby: jako sp...
Programowanie rozproszone 5609 dni, 1 godzinę, 15 minut temu 40 źrodło rozwiń
W jaki sposób infrastruktura przechowująca stan usług może być skalowana i zabezpieczona przed awarią? Odpowiedzią na to pytania jest wzorzec Service Grid. Jego nazwa może być nieco myląca. Nie ma on bowiem nic wspólnego z gridami oraz raczej niewiele z usługami w klasycznym pojęciu SOA. Service Grid jest nazwą dla podejścia, w którym wiele instancji infrastruktury przechowującej stan usług jest równolegle aktywnych (zwykle na wilu fizycznych maszynach). Instancje te współdzielą między sobą informacje d...
Programowanie rozproszone 5608 dni, 18 godzin, 18 minut temu 36 źrodło rozwiń
W jaki sposób usługa bezstanowa może brać udział w interakcjach wymagających przechowywania stanu? Rozwiązaniem (jednym z wielu możliwych) jest przesyłanie informacji o stanie w wymienianych przez usługę komunikatach. Tradycyjne rozwiązanie problemu polega na przechowywaniu stanu w instancji usługi. Jego słabą stroną jest blokowanie zasobów serwera (głównie pamięci) przez tymczasowo nieaktywne instancji usługi czekające na dalszy ciąg interakcji. Jeśli nie możemy zrezygnować z przechowywania stanu ...
Programowanie rozproszone 5611 dni, 22 godziny, 54 minuty temu 24 źrodło rozwiń
Jest to wzorzec z grupy porządkujących logiczny warstwy inwentarza (?) [inventory] usług. Pozostałe dwa z tej grupy to Entity Abstraction i Process Abstraction. Wszystkie trzy wzorce pomagają zidentyfikować różne grupy odpowiedzialności w "kandydatach na usługi". Skutkuje to wydzieleniem współnych zakresów odpowiedzialności do nowych usług lub łączeniem usług odpowiadających za ten sam aspekt rozwiązania. Utility Abstraction zajmuje się konkretnie funkcjonalnością wykorzystywaną we wszystkich fragm...
Programowanie rozproszone 5609 dni, 1 godzinę, 15 minut temu 32 źrodło rozwiń
Natknąłem się na kolejną ciekawą parę wzorców. W odróżnieniu od poprzednio opisywanej, tym razem para ma charakter dwóch konkurencyjnych rozwiązań tego samego problemu. To dla mnie interesująca nowość: do tej pory wzorce kojarzyły mi się z podejściem: problem - rozwiązanie (+ konsekwencje). W tym wypadku problem ma dwa równorzędne rozwiązania (przynajmniej tak wynika z lektury rozdziałów). No i wydaje mi się, że z tą równorzędnością jest problem... Direct Authentication zakłada, że każda usługa przech...
Programowanie rozproszone 5610 dni, 12 godzin, 2 minuty temu 29 źrodło rozwiń
To właściwie dwa wzorce: Capability Composition oraz Capability Recomposition. Pierwszy z nich rozwiązuje problem usługi, która w celu wykonania swojego zadania potrzebueje logiki, która nie mieści się w jej zakresie odpowiedzialności. Aby problem rozwiązać, można poszerzyć zakres odpowiedzialności usługi, jednak prowadzi to do duplikacji logiki. Innym, lepszym i poprawnym, rozwiązaniem jest włączenie wywołania innej usługi jako elementu realizacji logiki tej pierwszej. Właściwie wydaje się to zup...
Programowanie rozproszone 5613 dni, 6 godzin, 10 minut temu 16 źrodło rozwiń
Postanowiłem robić notatki z książki. Może kogoś zachęcą lub zniechęcą do czytania. Celem wzorca Service Facade jest zmniejszenie powiązania między kontraktem usługi, a jej logiką. Oczywiście logiczne powiązanie logiki do kontraktu jest zjawiskiem jak najbardziej pozytywnym (powiązanie odwrotne jest negatywne, skutkuje zwykle wyciekiem technicznych szczegółów logiki do kontraktu i często jest wynikiem automagicznego generowania WSDL-a z kodu). Czasami jednak zmniejszenie stopnia powiązania logiki do k...
Programowanie rozproszone 5612 dni, 16 godzin, 28 minut temu 46 źrodło rozwiń
Druga notka na temat pojedynczej sesji TechEd i znów dotyczy prezentacji Juval-a Lowy. Tym razem na warsztat postanowiłem wziąć prezentację o nieco intrygującym tytule "The Zen of Architecture". W moim przekonaniu Lowy był gwiazdą tegorocznej edycji TechEd, przynajmniej jeśli chodzi o tematy mnie interesujące, czyli architektura, SOA i okolice.
Architektura 5630 dni, 30 minut temu 20 źrodło rozwiń
Microsoft ostro bierze się za SOA. Od jakiegoś czasu funkcjonuje witryna SOA & Business Process, gdzie gigant z Redmond prezentuje swoje rozwiązania w dziedzinie wspierania SOA i procesów biznesowych, czyli : Visual Studio, BizTalk Server, Sharepoint, Visio, Dynamics etc. Dodatkowo informacja o tym, że dział R&D będzie miał w tym roku 3000 nowych miejsc pracy i jego budżet wynosi bagatela $9 bilionów. Microsoft zbroi się, ponieważ widzi że na tym polu jest lekko w tyle w stosunku do swojej najwi...
Architektura 5718 dni, 4 minuty temu 46 źrodło rozwiń