Software Architecture Styles
description
Transcript of Software Architecture Styles
![Page 1: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/1.jpg)
Software Architecture Styles
![Page 2: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/9.jpg)
Examples
Holiday Reservation System
Enterprise JavaBeans Component Object Model (COM) .NET model
![Page 10: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/13.jpg)
Advantages and Disadvantages
AdvantagesSimulates hardware that is not implementedSupports portability across different platforms
DisadvantagesIndirection slows down execution
![Page 14: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/14.jpg)
Examples Java Virtual Machine Lisp
![Page 15: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/17.jpg)
Example
Domain Name System (DNS) Server Hierarchy
![Page 18: Software Architecture Styles](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062423/568144e2550346895db1b06b/html5/thumbnails/25.jpg)
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