The document provides an introduction to service-oriented architecture (SOA). It defines SOA as an architectural style for building distributed systems using loosely coupled services. Key aspects of SOA discussed include autonomous services that communicate using messages, service contracts, and policy-based governance. The document contrasts "big SOA" which focuses on business alignment, and "little SOA" which is the architectural style. It discusses important SOA concepts like services, systems, endpoints, messages, and patterns like request/reply and decoupled invocation.
Communication Patterns Using Data-Centric Publish/SubscribeSumant Tambe
Fundamental to any distributed system are communication patterns: point-to-point, request-reply, transactional queues, and publish-subscribe. Large distributed systems often employ two or more communication patterns. Using a single middleware that supports multiple communication patterns is a very cost-effective way of developing and maintaining large distributed systems. This talk will begin with an introduction of Data Distribution Service (DDS) – an OMG standard – that supports data-centric publish-subscribe communication for real-time distributed systems. DDS separates state management and distribution from application logic and supports discoverable data models. The talk will then describe how RTI Connext Messaging goes beyond vanilla DDS and implements various communication patterns including request-reply, command-response, and guaranteed delivery. You will also learn how these patterns can be combined to create interesting variations when the underlying substrate is as powerful as DDS. We’ll also discuss APIs for creating high-performance applications using the request-reply communication pattern.
Digital dictation & voice to text conversionremya_nair1910
This presentation is about an advanced workflow management system for legal firms, courts & advocates. This technology stream lines your documentation & dictation process efficiently. We present you a digital voice recorder and a voice to text conversion software which works in real time
Communication Patterns Using Data-Centric Publish/SubscribeSumant Tambe
Fundamental to any distributed system are communication patterns: point-to-point, request-reply, transactional queues, and publish-subscribe. Large distributed systems often employ two or more communication patterns. Using a single middleware that supports multiple communication patterns is a very cost-effective way of developing and maintaining large distributed systems. This talk will begin with an introduction of Data Distribution Service (DDS) – an OMG standard – that supports data-centric publish-subscribe communication for real-time distributed systems. DDS separates state management and distribution from application logic and supports discoverable data models. The talk will then describe how RTI Connext Messaging goes beyond vanilla DDS and implements various communication patterns including request-reply, command-response, and guaranteed delivery. You will also learn how these patterns can be combined to create interesting variations when the underlying substrate is as powerful as DDS. We’ll also discuss APIs for creating high-performance applications using the request-reply communication pattern.
Digital dictation & voice to text conversionremya_nair1910
This presentation is about an advanced workflow management system for legal firms, courts & advocates. This technology stream lines your documentation & dictation process efficiently. We present you a digital voice recorder and a voice to text conversion software which works in real time
Jamie Clark's preso on cloud computing and legal issues at the OASIS International Cloud Symposium (#intcloudsymp) at Ditton Manor, Windsor, UK, October 2011
Effective Microservices Design using Events and Event SourcingDavid Dawson
Highlight various pressures on Microservice architectures, how "Microservices" is not a design style and what we can do about that.
This presentation covers the use of events, event sourcing and how that can be applied to testing, security, audit and many other areas.
Jamie Clark's preso on cloud computing and legal issues at the OASIS International Cloud Symposium (#intcloudsymp) at Ditton Manor, Windsor, UK, October 2011
Effective Microservices Design using Events and Event SourcingDavid Dawson
Highlight various pressures on Microservice architectures, how "Microservices" is not a design style and what we can do about that.
This presentation covers the use of events, event sourcing and how that can be applied to testing, security, audit and many other areas.
Slides for my architectural session at the event: Docker From Zero To Hero.
We talked about what kind of expertises are need in order to build a true Microservices Solution; you'll need to understand some of the fundamentals on which Microservices is built upon: SOA, EDA and DDD just to name a few, then you can move to the container world.
Original event link: https://www.eventbrite.it/e/biglietti-docker-from-zero-to-hero-83372825365#
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1A8pJF6.
Armon Dadgar presents Consul, a distributed control plane for the datacenter. Armon demonstrates how Consul can be used to build, configure, monitor, and orchestrate distributed systems. Filmed at qconsf.com.
Armon Dadgar has a passion for distributed systems and their application to real world problems. He is currently the CTO of HashiCorp, where he brings distributed systems into the world of DevOps tooling.
How Events Are Reshaping Modern SystemsJonas Bonér
Event-driven architecture and design have been getting a lot of attention in recent years. It’s an old concept that has been around for decades, so why this sudden peak of interest?
In this talk, we will explore the nature of events, what it means to be event-driven, and how we can unleash the power of events. The goal is to arm you with a solid theoretical understanding of how to design an event-driven system, what tools and techniques you can use to reap the most benefit from its design, and perhaps most importantly, what to avoid.
We'll discuss how an event-driven design can help:
- drive autonomy
- reduce risk
- increase certainty
- increase loose coupling
- increase scalability
- increase resilience
- increase traceability
Skeptics should definitely attend.
It's easy to say... Microservices! Reality is we need to learn and apply concepts coming from many disciplines like SOA, EDA and DDD just to name a few! Mix them with some ALM and technical processes around Packaging and Deploying... and maybe then you get a true Microservices solution.
Optimizing Your SOA with Event Processing, TIBCO, TUCON 2007, Tim Bass, Principal Global Architect, DirectorEmerging Technologies Group TIBCO Software Inc.
Incident Management in the Age of DevOps and SRE Rundeck
Presented by Damon Edwards, co-founder of Rundeck, at QCon San Francisco 2019.
See a Demo of Rundeck Enterprise :
https://www.rundeck.com/see-demo
--or--
Download Rundeck Open Source here:
https://rundeck.com/open-source
Connect:
Stack Overflow community: https://stackoverflow.com/questions/tagged/rundeck
Github: https://github.com/rundeck/rundeck/issues
Twitter: https://twitter.com/Rundeck
Facebook: https://www.facebook.com/RundeckInc/
LinkedIn: www.linkedin.com › company › rundeck-inc
Incident Management in the Age of DevOps and SRE Rundeck
Keynote presentation at DevOps Con Munich, December 3, 2019, presented by Damon Edwards, co-founder of Rundeck.
Responding to incidents has always been the core job of Operations. With the rise of DevOps and SRE, how Operations work gets done — and who is doing the work — is changing. This talk will look at how high-performing organizations are applying DevOps and SRE practices to shorten incidents and reduce escalations.
See a Demo of Rundeck Enterprise :
https://www.rundeck.com/see-demo
--or--
Download Rundeck Open Source here:
https://rundeck.com/open-source
Connect:
Stack Overflow community: https://stackoverflow.com/questions/tagged/rundeck
Github: https://github.com/rundeck/rundeck/issues
Twitter: https://twitter.com/Rundeck
Facebook: https://www.facebook.com/RundeckInc/
LinkedIn: www.linkedin.com › company › rundeck-inc
Netflix Play API: Why we built an evolutionary architectureSuudhan Rangarajan
For your next re-architecture, consider building a Evolutionary Architecture, with strong focus on Identity, Type1/Type2 Decisions and Fitness Functions.
This talk goes through the journey of re-architecting one of the most critical services at Netflix.
Devoxx London 2017 - Rethinking Services With Stateful StreamsBen Stopford
Microservices are one of those polarising concepts that technologists either love or hate. Splitting applications into autonomous units clearly has advantages, but larger service-based systems tend to struggle as the interactions between the services grow.
At the core of this sits a dichotomy: Data systems are designed to make data as accessible as possible. Services, on the other hand, actively encapsulate. These two forces inevitably compete in the architectures we build. By understanding this dichotomy we can better reason about how services should be sewn together. We strike a balance between the ability to adapt quickly and the loose coupling we need to retain autonomy, long term.
In this talk we'll examine how Stateful Stream Processing can be used to build Event Driven Services, using a distributed log like Apache Kafka. In doing so this Data-Dichotomy is balanced with an architecture that exhibits demonstrably better scaling properties, be it increased complexity, team size, data volume or velocity.
PeopleSoft: HACK THE Planet^W universityDmitry Iudin
The PeopleSoft Campus Solutions is used in more than 1000 universities worldwide. In this presentation, we will show how to use several vulnerabilities to gain access to the entire information system of the University. And it means grade fraud, sabotage, access to student information, access to credit cards, bills, payment plans, fees, etc. In this presentation, we'll look at the architecture of PeopleSoft products, its strengths and weaknesses. We show attack surface and demonstrate a practical attack on the system. We also prove how one vulnerability affects a whole family of products, Oracle PeopleSoft, not just PeopleSoft Campus Solutions.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
3. What is ArchitectureWhat is Architecture
Formal DefinitionFormal Definition
IEEE 1471-2000IEEE 1471-2000
Software architecture is theSoftware architecture is the fundamentalfundamental
organizationorganization of a system, embodied in itsof a system, embodied in its
componentscomponents, their, their relationshipsrelationships to each other andto each other and
the environment, and thethe environment, and the principlesprinciples governing itsgoverning its
design and evolutiondesign and evolution
IEEE 1471-2000IEEE 1471-2000
4. collection of the fundamental decisions about a softwarecollection of the fundamental decisions about a software
product/solution designed to meet the project‘s qualityproduct/solution designed to meet the project‘s quality
attributesattributes
Includes the main components, their main attributes, and theirIncludes the main components, their main attributes, and their
collaborationcollaboration
expressed in several levels of abstraction (depending on theexpressed in several levels of abstraction (depending on the
project's size).project's size).
Architecture is communicated from multiple viewpointsArchitecture is communicated from multiple viewpoints
What is Software ArchitectureWhat is Software Architecture
7. What is a Service (1)What is a Service (1)
Merriam-WebsterMerriam-Webster
A facility supplying some public demandA facility supplying some public demand
the work performed by one that serves HELP, USE,the work performed by one that serves HELP, USE,
BENEFITBENEFIT
HMM..HMM..
8. What is a Service (2)What is a Service (2)
In economics and marketing, a service is the non-In economics and marketing, a service is the non-
material equivalent of a good. Service provision hasmaterial equivalent of a good. Service provision has
been defined as an economic activity that does notbeen defined as an economic activity that does not
result in ownership, and this is what differentiates itresult in ownership, and this is what differentiates it
from providing physical goods.from providing physical goods.
It is claimed to be aIt is claimed to be a process that creates benefitsprocess that creates benefits byby
facilitating either a change in customers, a changefacilitating either a change in customers, a change
in their physical possessions, or a change in theirin their physical possessions, or a change in their
intangible assets.intangible assets.
en.wikipedia.org/wiki/Serviceen.wikipedia.org/wiki/Service
9. What is a service (3)What is a service (3)
A Windows Service?A Windows Service?
RPC Locator, EventLog, DHCP Client,RPC Locator, EventLog, DHCP Client,
Software Service?Software Service?
Distribution Service, Alert ServiceDistribution Service, Alert Service
Security Service, Log ServiceSecurity Service, Log Service
Business Service?Business Service?
Common Operational Picture, NavigationCommon Operational Picture, Navigation
Accounts Receivable, CustomersAccounts Receivable, Customers
10. SOA isn’t a solution toSOA isn’t a solution to
world hungerworld hunger
Nor is it:Nor is it:
A specific TechnologyA specific Technology
The Ultimate answer to reuseThe Ultimate answer to reuse
AA New name for EAINew name for EAI
A New way to do RPCA New way to do RPC
11. ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRW
SWGSWG
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLY
XPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
ECPECP
SKDSKD
MFPMFP
WCPWCP
DKEDKEAJTAJT
Big SOABig SOA
Analyze the businessAnalyze the business
12. ASBASB BLTBLT
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRW
SWGSWG
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
DLYDLY
XPSXPS
KYFKYF
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
ECPECP
SKDSKD
MFPMFP
WCPWCP
DKEDKEAJTAJT
Big SOABig SOA
Identify Business AreasIdentify Business Areas
COP
Navigation
Protectors
Alerts
13. Big SOABig SOA
Map to softwareMap to software
"Network"
COPCOPCOPCOP
Nav.Nav.Nav.Nav.
AlertsAlertsAlertsAlerts
Prot.Prot.Prot.Prot.
14. Little SOALittle SOA
Architectural StyleArchitectural Style
For building distributed systemsFor building distributed systems
Loosely coupled componentsLoosely coupled components
Our focus from here onward…Our focus from here onward…
15. ServiceService
describesdescribes
End PointEnd Point ExposesExposes
MessagesMessages Sends/ReceivesSends/Receives
ContractsContracts
Binds toBinds to
ServiceService
ConsumerConsumer
implementsimplements
PolicyPolicy governed bygoverned by
Sends/ReceivesSends/Receives
AdheresAdheres
toto
ComponentComponent
RelationRelation
KeyKey
UnderstandsUnderstands
ServesServes
16. Services and SystemsServices and Systems
A service is a program you interact withA service is a program you interact with
via message exchangesvia message exchanges
A system is a set of deployed servicesA system is a set of deployed services
cooperating in a given taskcooperating in a given task
17. A Service edgeA Service edge
is a naturalis a natural
boundaryboundary
Warning: Remoting and other RPCs trick us into thinking
that there is no substantial difference between a local and a
remote object. In fact, they hide the presence of the network.
20. sd Autonomous Services
User Journal Subscription System Publisher X
User
«service»
Customer
«service»
Proposals
«service»
Proposals
Waiting on external resources
do we really know how long will it take?
Not to mention that getting the information
only when needed makes Service
interaction very RPC-like (but that's another
problem)
1.0
getProforma
1.1
getCustomerDiscount
1.2
1.3
getDiscountRate
1.4
1.5
XX
21. sd ActiveServ ice
User Journal Subscription System Publisher X
User
«service»
Customer
«service»
Proposals
«service»
Proposals
note that now we are getting all the dicount rates in
one call (less messages) to generate even less traffic
the contracts can be made to include only changes
from timestamp supplied in the request
loop Activ e Class polls external resources
1.0 getCustomerDiscounts
1.1
1.2 getDiscounts
1.3
2.0 ProduceProforma
2.1
22. The fact that I can, doesn’t mean I will.
PoliciesPolicies
23. Organization AOrganization A Organization BOrganization B
PolicyPolicy PolicyPolicy
Policy IllustratedPolicy Illustrated
Buyer ServiceBuyer Service
Local ServiceLocal Service Local ServiceLocal Service
Seller ServiceSeller Service
Runtime contractRuntime contract
Runtime ContractRuntime Contract
1. Use X.509 Cert for AuthN1. Use X.509 Cert for AuthN
2. Use UTF-8, SOAP 1.22. Use UTF-8, SOAP 1.2
……
PolicyPolicy
1. Supports X.509 Cert1. Supports X.509 Cert oror Kerberos ST for AuthNKerberos ST for AuthN
2. Supports UTF-8, UTF-16, SOAP 1.2, 1.12. Supports UTF-8, UTF-16, SOAP 1.2, 1.1
……
Adopted from Clemens VastersAdopted from Clemens Vasters
Design time ContractDesign time Contract
1. You’ll send a PO1. You’ll send a PO
2. I’ll send a confirmation2. I’ll send a confirmation
……
28. IdempotenceIdempotence
Idempotent Means It’s OK to Arrive Multiple TimesIdempotent Means It’s OK to Arrive Multiple Times
As Long as the Request Is Processed at Least Once, the CorrectAs Long as the Request Is Processed at Least Once, the Correct
Stuff OccursStuff Occurs
In Today’s Internet, You Must Design Your Requests to BeIn Today’s Internet, You Must Design Your Requests to Be
IdempotentIdempotent
Not IdempotentNot Idempotent
Baking a CakeBaking a Cake
Starting fromStarting from
IngredientsIngredients
Naturally IdempotentNaturally Idempotent
Sweeping the FloorSweeping the Floor
Naturally IdempotentNaturally Idempotent
Read Record “X”Read Record “X”
IdempotentIdempotent
If Haven’t Yet DoneIf Haven’t Yet Done
Withdrawal #XYZWithdrawal #XYZ
for $1 Billion,for $1 Billion,
Then WithdrawThen Withdraw
$1 Billion and$1 Billion and
Label as #XYZLabel as #XYZ
Not IdempotentNot Idempotent
WithdrawingWithdrawing
$1 Billion$1 Billion
IdempotentIdempotent
Baking a CakeBaking a Cake
Starting fromStarting from
the Shoppingthe Shopping
List (If MoneyList (If Money
Doesn’t Matter)Doesn’t Matter)
Pat HellandPat Helland
33. Keep Data and state privateKeep Data and state private
34. Big SOA is about business alignmentBig SOA is about business alignment
Little SOA is an Architectural StyleLittle SOA is an Architectural Style
Autonomous Coarse GrainedAutonomous Coarse Grained
ComponentsComponents
Message based InteractionsMessage based Interactions
Run-Time configurationRun-Time configuration
35. What’s nextWhat’s next
SOA Structural PatternsSOA Structural Patterns
SOA Interaction PatternsSOA Interaction Patterns
UI Interaction PatternsUI Interaction Patterns
Service Composition PatternsService Composition Patterns
Contract Anti-patternsContract Anti-patterns
Service Anti-patternsService Anti-patterns
SOA Performance Anti-PatternsSOA Performance Anti-Patterns
Editor's Notes
2003 PSS Global Summit
2003 PSS Global Summit
2003 PSS Global Summit Emphasize that the rationale for the architectural decisions is very important.
2003 PSS Global Summit Software architecture is the collection of the fundamental decisions about a software product/solution designed to meet the project's quality attributes (i.e. requirements). The architecture includes the main components, their main attributes, and their collaboration (i.e. interactions and behavior) to meet the quality attributes. Architecture can and usually should be expressed in several levels of abstraction (depending on the project's size). If an architecture is to be intentional (rather than accidental), it should be communicated. Architecture is communicated from multiple viewpoints to cater the needs of the different stakeholders. Every system has an architecture, even if it is not formally “spec’ed out”.
A Solution to world hunger Not a solution for everything Just another tool in the toolset A specific Technology Most notably SOA Web Services Will Not make all code reusable A New name for EAI Though well established contracts can help that too A New way to do RPC 2003 PSS Global Summit
2003 PSS Global Summit
2003 PSS Global Summit
Business Alignment Can’t stress that enough Reduced assumptions (loose coupling) Builds on ideas from component software, distributed objects, and MOM BPM … All the stuff enterprise architects do 2003 PSS Global Summit
A service is a program you interact with via message exchanges Services are built to last Encompass a business perspective Stability and robustness are critical A system is a set of deployed services cooperating in a given task Systems are built to change Adapt to new services after deployment 2003 PSS Global Summit
Each Service interaction is a boundary crossing Don’t cross it with transactions / exceptions etc. Crossing service boundaries may have costs Service Orientation helps makes interaction formal, intentional, and explicit Service boundary is a trust boundary ! Respect my Boundaries (Adopted from Alex Weinert, Clemens Vasters) 2003 PSS Global Summit
Autonomous services can mean many things. One explanation I’ve heard was the autonomous means that the teams working on different teams can be autonomous. While, this is a nice “feature” to have, a much more valuable (as in “business value”) definition is that the services are as self sufficient as possible. For example a imagine a journal subscription agency which needs to create a proposal for a client. The proposal service needs among other things, to produce a “pro forma” invoice in order to do that it must get the customer’s discount rate and the customer’s discount rate as well as the publisher’s discount rates (to check if the proposal is profitable) see the flow in figure 2.X below . If the proposal service is not autonomous it has to wait for two other services and while the customer service is local the publisher’s discount might be a remote one (on the publisher’s system) – what happens to our proposal service if the publisher’s system is not on-line? 2003 PSS Global Summit
Service compatibility is determined based on policy Object-oriented designs often confuse structural compatibility with semantic compatibility. Service-orientation deals with these two axes separately. Structural compatibility is based on contract and schema and can be validated (if not enforced) by machine-based techniques (such as packet-sniffing, validating firewalls). Semantic compatibility is based on explicit statements of capabilities and requirements in the form of policy. Every service advertises its capabilities and requirements in the form of a machine-readable policy expression. Policy expressions indicate which conditions and guarantees (called assertions) must hold true to enable the normal operation of the service. Policy assertions are identified by a stable and globally unique name whose meaning is consistent in time and space no matter which service the assertion is applied to. Policy assertions may also have parameters that qualify the exact interpretation of the assertion. Individual policy assertions are opaque to the system at large, which enables implementations to apply simple propositional logic to determine service compatibility. A Policy is a set of assertions made about Security messages behavior level of service limited by the actual service capabilities Policy-sets are attached, embedded or otherwise associated with contracts Policy specifies a run-time dynamic, negotiable configuration information for a contract implementation. 2003 PSS Global Summit
2003 PSS Global Summit Took Clemens example – but Reversed contract direction – The is “owned” by the service provider not the consumer
address, a URI, a specific place where the service can be found. A specific contract can be exposed at a specific endpoint. 2003 PSS Global Summit
Services Revolve Around Messages Services Are “Black Boxes” Messages go in and out The Rest Is an Implementation Detail! 2003 PSS Global Summit
Between Services is Special Messages Are Sent and Float Around Between Special Care Is Needed to Understand Them Can Be Confusion About Interpreting Them Many Kinds of Message transports Email, IP, TCP/IP, HTTP, Web-service, MSMQ, MQ-Series, and more Many Kinds of Message structures XML, Binary, whatever May be OK to Have Some Message Loss If messages are idempotent Other option “Reliable Messaging” 2003 PSS Global Summit
2003 PSS Global Summit
One Way Incoming Outgoing Broadcast Publish (as in publish/subscribe) To single recipient Duplex Two one-ways Request/Reply R equest/Reaction 2003 PSS Global Summit
Messages & Formats Message Exchange Patterns Where is a service located (Address) Protocol & content format (Binding) 2003 PSS Global Summit
Service Data is private Keep DB private Keep transactions private Keep exceptions private Don’t share classes or other internal data structures Don’t share too much – or you’ll lose autonomy (or tempt others to lose it) 2003 PSS Global Summit
Services interactions are message driven Services should be Loosely coupled Edges should provide location transparency Business logic and edge are separate layers Scale inside the service You can use workflows for long-running interactions again - inside the service 2003 PSS Global Summit