software architecture styles. service oriented architecture (soa) break software into services ...

25
Software Architecture Styles

Upload: reynold-hodges

Post on 24-Dec-2015

224 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Software Architecture Styles

Page 2: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Service Oriented Architecture (SOA)

Break software into Services

Services are very loosely coupled

Services hide information about how they work

An application can string together many services to provide functionality.

Layout of Service Oriented Architecture

Page 3: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Benefits Organizational flexibility: Loosely coupled services ease the

integration into other applications.

Interoperability: Services are able to understand each other

despite the language they were written in.

Reusability & Maintainability – Changes made to one component

in SOA will not ripple outward and affect others. Reusable

services can be easily plugged into new applications without

having to test them.

Page 4: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Drawbacks Not suitable for Graphical User Interface

functionalities. (i.e. Map manipulation) Stand-alone or short lived applications that do not

require request and response (i.e. word processing) Increased complexity in basic understanding and

managing of SOA Security is an issue as it must be considered at service

level rather than application level

Page 5: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Examples1. National Aeronautics and Space Administration: streamlines access

to its mounds of data, as well as link users of the data to the services they need to process the data.

2. Harvard Medical School (and its hospital) : shares medical data by building an SOA involving about 25 categories of Web services shared between 400 different departments with 14,000 employees.

3. T-Mobile: uses SOA to work effectively with third-party content providers such as Time Warner and the Bertelsmann Group to deliver services to customers.

4. Motorola: introduced 180 services, monitoring projects, and has an average of 50 rules, covering everything from credit card transactions to warranty services. 

Page 6: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

References1. Barry, Douglas K. Web services and service-oriented

architectures: the savvy manager's guide. Morgan Kaufmann, 2003.

2. http://msdn.microsoft.com/en-us/library/ee658117.aspx#ServiceOrientedStyle

3. http://www.opengroup.org/soa/source-book/soa/soa_features.htm#tbl1

4. http://www.uwplatt.edu/csse/courses/prev/csse411-materials/s11/dubeya_Service%20Oriented%20Architecture.pptm

5. http://www.exforsys.com/tutorials/soa/soa-disadvantages.html

6. http://www.zdnet.com/blog/service-oriented/ten-examples-of-soa-at-work-right-now/508

Page 7: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Component-Based ArchitectureWhat is it?Emphasizes on separation of concerns where each software component is a software package, service, or a resource that contains related functions. Component Interface is a set of methods supported by a component. The components are put together to create one system. This concept is the same when a car is being assembled, there is prefabricated tires, wheels, stirring wheels, etc.

What problem does it solve? Time consumption Confusion of where the bug/error is located Maintenance of the system

Page 8: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Advantages Disadvantages

Reusability More reliable systems Increases productivity Reduction in

development cycle time

Maintenance cost for component increases

Components can be pricey

Page 9: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Examples

Holiday Reservation System

Enterprise JavaBeans Component Object Model (COM) .NET model

Page 10: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

References1. http://en.wikipedia.org/wiki/Component-based_software_en

gineering

2. http://www.ijcaonline.org/volume2/number1/pxc387855.pdf

3. http://www.cic.unb.br/~genaina/Dependability/Aulas/Aula2.pdf

4. http://geekswithblogs.net/chrisfalter/archive/2010/09/05/soa-vs.-component-based-architecture.aspx

5. http://www.seas.gwu.edu/~bell/csci210 lectures/components.pdf

Page 11: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Interpreter Architecture What is it?Parses and executes input commands, updating the state maintained by the interpreter [6]

What Problem does it solve?Suitable when the programming language or machine for implementing a solution is not available

How does it solve the problem?Interpreter reads program in some language, interprets it into another language and a component stores the program’s current state [4]

Page 12: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Elements of the Architecture Components: Command interpreter,

program/interpreter state, user interface

Connectors: Procedure calls, shared state

Qualities Yielded: Portability

Cautions: May be slow

Page 13: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Advantages and Disadvantages

AdvantagesSimulates hardware that is not implementedSupports portability across different platforms

DisadvantagesIndirection slows down execution

Page 14: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Examples Java Virtual Machine Lisp

Page 15: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Shared Nothing ArchitectureWhat is it?Form of distributed computing

Each node is independent and self-sufficientMainly used in web development and database management

What Problem does it solve?Avoids a single point of failure

No centralization

How does it solve the problem?None of the nodes share disk memory or storageQueries go to the node that contains the information

Page 16: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Advantages and DisadvantagesAdvantagesScalability

More space simply requires adding more nodesReliability

Faults in one node doesn’t affect the others

DisadvantagesCost

Nodes, communication links, maintenance/upgrades

Efficiency Partitioning data leads to load imbalance

Page 17: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Example

Domain Name System (DNS) Server Hierarchy

Page 18: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

References http://www.sersc.org/journals/IJEIC/vol2_Is4/15.pdf http://en.wikipedia.org/wiki/Shared_nothing_architec

ture http://www.scaledb.com/pdfs/WP_SDvSN.pdf

Page 19: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Database-Centric ArchitectureWhat is it?Refers to software in which databases play a crucial roleGenerally, any software that uses a standard, general-purpose relational DBMS

What Problem does it solve?Programs need to manage (edit, store, delete) large amounts of dataOther architectures make it impossible for this process to exist, and if they do, make it a resource excessive process

How does it solve the problem?Allows for data to be stored in a secure locationUtilizing various algorithms, this data is always available in a timed matter

Page 20: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Advantages and DisadvantagesAdvantagesDrive as much work down into the database management system as possibleBusiness rules can be defined as part of the databaseCan take advantage of SQL-only capabilitiesCan gain flexibility and performance over traditional program-centric practices

DisadvantagesMany people aren’t as familiar with the approach, so a learning curve is necessaryAdding a DBMS on to your application may add unnecessary bloat

Page 21: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Example a company

named Base One that develops software for constructing database applications uses database-centric architecture because of the grid and cluster computing, and explains how this design provides enhanced security, fault-tolerance, and scalability 

Page 22: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Peer-to-peerWhat is it?Type of decentralized and distributed architectural network that depends only individual nodes called “peers” as both suppliers and consumers of resourcesWhat Problem does it solve?No main server for receiving and delivering all the requests, instead the workload is distributed to all peers. This architecture made it possible for the internet to exist in the very beginning. [3]How does it solve the problem?It does not required a centralized server that hosts its files, since everyone has access to each other’s files through FTP (File Transfer Protocol) [4]

Page 23: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Advantages and DisadvantagesAdvantagesMore reliable as central dependency is eliminatedOverall cost of building and maintaining is comparatively less

DisadvantagesThe whole system is decentralized making it difficult to administerSecurity in the system is very less Data recovery and backup is difficult

Page 24: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

Examples Most modern applications still follow the early type

of programs like Napster. They use peer-to-peer are related to sharing files, most of the time illegally.

Another modern application is digital currencies, where every client owns a wallet with currency that only exists on every client’s wallet. Kind of like real money, every person has money that is validated once you buy something and it’s taken away from you.

Page 25: Software Architecture Styles. Service Oriented Architecture (SOA)  Break software into Services  Services are very loosely coupled  Services hide information

References1. http://msdn.microsoft.com/en-us/library/ee658117.aspx

2. https://cs.uwaterloo.ca/~gweddell/cs446/NewArch.pdf

3. http://www.onjava.com/pub/a/onjava/2005/01/26/soa-intro.html?page=1

4. http://research.cs.queensu.ca/~ahmed/home/teaching/CISC322/F08/slides/CISC322_03_ArchitectureStyles.pdf

5. http://www.onjava.com/pub/a/onjava/2005/01/26/soa-intro.html?page=1

6. http://sunset.usc.edu/classes/cs578_2014b/05_Architectural_Styles.ppt

7. http://msdn.microsoft.com/en-us/library/aa480021.aspx#aj1soa_topic3