- affordable, smaller, powerful computing solutions led to more distributed computing architecture
- server: processing and storage for numerous users
- client (thin or thick/fat): single user, fat clients do most of processing themselves
- multiple machines for processing increases need for security
- "n-tier" model (n = # of application levels doing work)
- user level, presentation level, business level, data access level, database level
- cloud computing is an extreme case of client server. n-tier model can be implemented in different cloud models (SaaS, PaaS, IaaS)
- file sharing and communication based systems
- helps manage throughput and guarantee delivery
- can also help with logging, security, and point to multi-point
- distributed with specific characteristics
- platform neutrality
- interoperability
- modularity and reusability
- abstracted business functionality
- contract-based interfaces
- discoverability
- several technologies like WS
- most SOA uses XML
- SOAP and REST and two common protocols for messaging in the ESB (enterprise service bus)
- monitors and controls message routing
- centralized architecture for communication between producers and consumers
- can translate/transform communications
- can convert between protocols (REST, JAVA, SOAP, etc)
- handle defined events
- perform message queuing and data flow mapping
- machine readable description of the interface - web services description language (WSDL)
- stateless manner
- universal, platform-independent
- dynamically discover and invoke web services
- XML, protocol based registry that services can list themselves on worldwide
- never widely adopted, generally only found inside orgs
- application with characteristics of a desktop application delivered over the internet (Facebook, many websites today)
- !! input validation !!
- consequence of architectural decision that there is no distinction between code and data
- IOT - seldom have security capabilities
- each element/device of the system needs to be self-sufficient and self-reliant for security, safety, and stability
- developers need to take responsibility for security of transmitted data - not expect the network to be secure
- A user's location can be abused
- not all sensitive data is easily identified as sensitive - need to consider how it could be abused
- mostly used for contactless inventory
- range from few meters to hundreds of meters (active, battery powered transponders)
- radio frequency use has regulatory reqs (differs by country)
- RF over very short distances (few inches)
- no setup for the user
- sometimes used to initiate/bootstrap higher bandwidth transfers
- physical and environmental (rainfall, weather, communication efficiency, etc)
- individual elements are called nodes
- architecture depends on communication technology and objectives of network
- built with consideration of native constraints of the device
- mobile apps can generally access a lot of information stored on the device
- modern enterprise will never have one form of architecture
- cross-integration allows data reuse and increases utility of enterprise architecture
term is new, concept has been in use for decades
- on-demand self-service
- broad network access
- resource pooling
- rapid elasticity
- measured service
- Private cloud (one entity)
- Public cloud
- Community cloud (membership defined by shared concerns/use cases)
- hybrid cloud (combination that remains separate but has common technology)
- need to plan for and consider vendor use/storage of client data
- can include SaaS and IaaS elements
- as scale increases, so does operational savings