Thursday, February 14, 2019

CS6601 - Distributed Systems Notes


SYLLABUS

CS6601                                            DISTRIBUTED SYSTEMS                            L T P C

      3 0 0 3

COURSE OBJECTIVES:

The student should be made to:
  1. Understand foundations of Distributed Systems.
  2. Introduce the idea of peer to peer services and file system.
  3. Understand in detail the system level and support required for distributed system.
  4. Understand the issues involved in studying process and resource management.

UNIT I INTRODUCTION                                                                                           7

Examples of Distributed Systems – Trends in Distributed Systems  –  Focus on resource sharing  – Challenges.Case study: World Wide Web.


UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM                                  10

System Model – Inter process Communication - the API for internet protocols – External data representation and Multicast communication. Network virtualization: Overlay networks. Case study: MPI Remote Method Invocation and Objects: Remote Invocation – Introduction - Request-reply protocols - Remote procedure call - Remote method invocation. Case study: Java RMI – Group communication - Publish-subscribe systems - Message queues - Shared memory approaches - Distributed objects - Case study: Enterprise Java Beans -from objects to components.


UNIT III PEER TO PEER SERVICES AND FILE SYSTEM                                    10

Peer-to-peer Systems – Introduction - Napster and its legacy - Peer-to-peer – Middleware – Routing overlays. Overlay case studies: Pastry, Tapestry- Distributed File Systems –Introduction – File service architecture – Andrew File system. File System: Features-File model -File accessing models - File sharing semantics Naming: Identifiers, Addresses, Name Resolution – Name Space Implementation – Name Caches – LDAP.


UNIT IV SYNCHRONIZATION AND REPLICATION                                           9

Introduction - Clocks, events and process states - Synchronizing physical clocks- Logical time and logical clocks - Global states – Coordination and Agreement – Introduction - Distributed mutual exclusion – Elections – Transactions and Concurrency Control– Transactions -Nested transactions – Locks – Optimistic concurrency control - Timestamp ordering – Atomic Commit protocols -Distributed deadlocks – Replication – Case study – Coda.


UNIT V PROCESS & RESOURCE MANAGEMENT                                             9

Process Management: Process Migration: Features, Mechanism - Threads: Models, Issues, Implementation. Resource Management: Introduction- Features of Scheduling Algorithms –Task Assignment Approach – Load Balancing Approach – Load Sharing Approach.


TOTAL: 45 PERIODS

COURSE OUTCOMES:

At the end of the course, the student should be able to:

1. Discuss trends in distributed System.
2. Describe and differentiate various communication methods in distributed system.
3. Explain peer to peer services and file system in distributed system.
4. Discuss various synchronization methods, distributed deadlock and replication.
5. Describe process and resource management techniques in distributed system.

TEXT BOOK:


REFERENCES:

3. Liu M.L., “Distributed Computing, Principles and Applications”, Pearson Education, 2004.
4. Nancy A Lynch, “Distributed Algorithms”, Morgan Kaufman Publishers, USA, 2003.

2 MARKS



UNIVERSITY QUESTION PAPER:




GitHub alternatives

5 GitHub alternatives that you must check out:

When it comes to a code hosting open source project, GitHub is a popular choice among developers. The platform was acquired by Microsoft last year for $7.5 billion to the dissatisfaction of many developers in the GitHub community. Recently, Microsoft allowed free users unlimited private repositories on GitHub in its efforts to woo the developers community. 

Here is our list of Github alternatives that you can rely on: 

#1. BitBucket 

The platform is an incredible alternative to GitHub that professional developers can consider. Bitbucket has a number of features that will help development teams collaborate on projects and initiate discussions within team members. The platform has unlimited repositories and features to store and collaborate. BitBucket is quite popular because of its user-friendly interface which allows large files. 

#2. GitLab 

It is a full-feature packed code storing and sharing repository. The platform is promoted as a single application for entire development. GitLab has all the features right from project planning, source code management, monitoring and, security. 


The open source code hosting platform is based on collaboration and Bazaar version control system. The platform offers a number of features right from developmental attributes, code hosting, mailing list, code reviews, bug tracking, and more. The Github alternative has comparable project management tools which simplify the teamwork. Launchpad offers free hosting for public projects and the pricing starts from $50. 

#4. Beanstalk 

The platform is known for its complete workflow and code review features. Beanstalk is largely used by corporates for private code hosting. The platform helps you create development workflow, including writing and reviewing. The platform has good Git and SVN hosting features. Beanstalk has always been positioned as an alternative of GitHub. The subscription package starts from $15 per month and goes up to $200 per month. 


This is a pluggable alternative to GitHub that runs and supports Java Virtual Machine (JVM). The platform offers a number of features and offers developer-centric attributes. GitBucket is based on Scala, hence supports easy installation and high extensibility. The platform is compatible with a large number of GitHub APIs. You can download the trial version for free.

Thursday, February 7, 2019

Information about Computer Science and Engineering


Computer Science Engineering (CSE) encompasses a variety of topics that relates to computation, like analysis of algorithms, programming languages, program design, software, and computer hardware. Computer Science engineering has roots in electrical engineering, mathematics, and linguistics.

Computer Science” is an umbrella term which encompasses four major areas of computing: theory, algorithms, programming languages, and architecture. “Computer Engineering” typically focuses specifically on computer hardware and software. It is an integration of computer science and electrical engineering.


There are several trends in computer science but out of them few trends are dominating 2018 and make headlines. All these trends are listed below.

1) Edge Computing

2) AI (Artificial Intelligence) OR IoT (Internet Of Things)

3) Data Analytics

4) Driverless Cars

5) Seamless voice recognition (Conversation with machines)

6) Cloud Computing

7) 5G Technology

Top 10 Technology Trends in 2018:

The top 10 technology trends predicted to reach adoption in 2018 are:

1. Deep learning (DL). Machine learning (ML) and more specifically DL are already on the cusp of revolution. They are widely adopted in datacenters (Amazon making graphical processing units [GPUs] available for DL, Google running DL on tensor processing units [TPUs], Microsoft using field programmable gate arrays [FPGAs], etc.), and DL is being explored at the edge of the network to reduce the amount of data propagated back to datacenters. Applications such as image, video, and audio recognition are already being deployed for a variety of verticals. DL heavily depends on accelerators (see #9 below) and is used for a variety of assistive functions (#s 6, 7, and 10).

2. Digital currencies. Bitcoin, Ethereum, and newcomers Litecoin, Dash, and Ripple have become commonly traded currencies. They will continue to become a more widely adopted means of trading. This will trigger improved cybersecurity (see #10) because the stakes will be ever higher as their values rise. In addition, digital currencies will continue to enable and be enabled by other technologies, such as storage (see #3), cloud computing (see B in the list of already adopted technologies), the Internet of Things (IoT), edge computing, and more.

3. Blockchain. The use of Bitcoin and the revitalization of peer-to-peer computing have been essential for the adoption of blockchain technology in a broader sense. We predict increased expansion of companies delivering blockchain products and even IT heavyweights entering the market and consolidating the products.

4. Industrial IoT. Empowered by DL at the edge, industrial IoT continues to be the most widely adopted use case for edge computing. It is driven by real needs and requirements. We anticipate that it will continue to be adopted with a broader set of technical offerings enabled by DL, as well as other uses of IoT (see C and E).

5. Robotics. Even though robotics research has been performed for many decades, robotics adoption has not flourished. However, the past few years have seen increased market availability of consumer robots, as well as more sophisticated military and industrial robots. We predict that this will trigger wider adoption of robotics in the medical space for caregiving and other healthcare uses. Combined with DL (#1) and AI (#10), robotics will further advance in 2018. Robotics will also motivate further evolution of ethics (see #8).

6. Assisted transportation. While the promise of fully autonomous vehicles has slowed down due to numerous obstacles, a limited use of automated assistance has continued to grow, such as parking assistance, video recognition, and alerts for leaving the lane or identifying sudden obstacles. We anticipate that vehicle assistance will develop further as automation and ML/DL are deployed in the automotive industry.

7. Assisted reality and virtual reality (AR/VR). Gaming and AR/VR gadgets have grown in adoption in the past year. We anticipate that this trend will grow with modern user interfaces such as 3D projections and movement detection. This will allow for associating individuals with metadata that can be viewed subject to privacy configurations, which will continue to drive international policies for cybersecurity and privacy (see #10).

8. Ethics, laws, and policies for privacy, security, and liability. With the increasing advancement of DL (#1), robotics (#5), technological assistance (#s 6 and 7), and applications of AI (#10), technology has moved beyond society's ability to control it easily. Mandatory guidance has already been deeply analyzed and rolled out in various aspects of design (see the IEEE standards association document), and it is further being applied to autonomous and intelligent systems and in cybersecurity. But adoption of ethical considerations will speed up in many vertical industries and horizontal technologies.

9. Accelerators and 3D. With the end of power scaling and Moore's law and the shift to 3D, accelerators are emerging as a way to continue improving hardware performance and energy efficiency and to reduce costs. There are a number of existing technologies (FPGAs and ASICs) and new ones (such as memristor-based DPE) that hold a lot of promise for accelerating application domains (such as matrix multiplication for the use of DL algorithms). We predict wider diversity and broader applicability of accelerators, leading to more widespread use in 2018.

10. Cybersecurity and AI. Cybersecurity is becoming essential to everyday life and business, yet it is increasingly hard to manage. Exploits have become extremely sophisticated and it is hard for IT to keep up. Pure automation no longer suffices and AI is required to enhance data analytics and automated scripts. It is expected that humans will still be in the loop of taking actions; hence, the relationship to ethics (#8). But AI itself is not immune to cyberattacks. We will need to make AI/DL techniques more robust in the presence of adversarial traffic in any application area.

From games developer to manager of IT and communications services, you'll have a range of opportunities open to you as a computer science graduate

Job options:

Jobs directly related to your degree include:



Jobs where your degree would be useful include:

  • Digital copywriter
  • IT sales professional
  • IT trainer
  • Nanotechnologist
  • Network engineer
  • PPC specialist
  • Social media manager
  • Supply chain manager
  • Technical author
  • Web content manager

The 10 Highest-Paying Tech Jobs Right Now

  • Software Architect - $116,267
  • Data Scientist - $109,399
  • Develops Engineer - $106,045
  • Software Engineer - $98,304
  • Java Developer - $98,304
  • Mobile Developer - $96,133
  • Frontend Developer - $92,133
  • Software Developer - $87,185
  • Database Admin - $87,025
  • .Net Developer - $83,936