Software Architecture - Class Projects PDF
Software Architecture - Class Projects PDF
Design a high availability service to structure social networks, This service should allow
searching for an individual, and then locate shortest path to the searched person. Think six
degrees of separation.
Service should be designed to support skewed network. Some searches are more popular than
others.
Graph data is large and will not fit on a single machine. All connections in the graph are treated
as bi-directional. If I know you, you know me as well.
Service should support approx. 100 million users, 50 friends per user average with SD of 40. It
should support 1 billion friend searches every month.
Proj – 3 : Propose an architecture for a service that can scale to millions of connections,
think whatsapp, or skype.
A graph database is a database that uses graph structures for semantic queries with nodes, edges,
and properties to represent and store data. A key concept of the system is the graph (or edge or
relationship). The graph relates the data items in the store to a collection of nodes and edges, the
edges representing the relationships between the nodes. The relationships allow data in the store
to be linked together directly and, in many cases, retrieved with one operation.
■ Remote access across networks. Any information had to be accessible from any device.
■ Heterogeneity. The system could not be limited to run on any specific hardware or software
platform.
■ Non-centralization. In the spirit of a human web and of the Internet, there could not be any
single source of data or services.
■ Access to existing data. Existing databases/documents had to be accessible.
■ Ability for users to add data. Users should be able to “publish” their own data on the Web,
using the same interface used to read others’ data.
■ Private links. Links and nodes had to be capable of being privately annotated.
■ Live links. Given that information changes all the time, there should be some way of updating
a user’s view of it. This could be by simply retrieving the information every time the link is
accessed or (in a more sophisticated fashion) by notifying a user of a link whenever the
information has changed.
■ High performance. A popular Web site will typically have tens of millions of “hits” per day,
and users expect low latency from it. Customers will not tolerate the site simply refusing their
requests.
■ High availability. E-commerce sites are expected to be available “24/7.” They never close, so
must have minimal downtime—perhaps a few minutes per year.
■ Scalability. As Web sites grow in popularity, their processing capacity must be able to
similarly grow, to both expand the amount of data they can manage and maintain acceptable
levels of customer service.
■ Security. Users must be assured that any sensitive information they send across the Web is
secure from snooping. Operators of Web sites must be assured that their system is secure from
attack (stealing or modifying data, rendering data unusable by flooding it with requests, crashing
it, etc.).
■ Modifiability. E-commerce Web sites change frequently, in many cases daily, and so their
content must be very simple to change.
Proj – 6 : Architect a Financial Risk System
Your design should support following requirements for a mid-size bank. There are existing
systems which will be used to retrieve/source data/information.