Mastering Cassandra

Unleash the power of Cassandra to develop complex and feature-rich web applications for efficient data management
3.5 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
188 students enrolled
$19
$95
80% off
Take This Course
  • Lectures 47
  • Length 3 hours
  • Skill Level Expert Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 8/2015 English

Course Description

As technology evolves, the constant upsurge of data creation leads to a continuous need for a more flexible, secure, and reliable manner of storage. Luckily, Cassandra is able to tackle this growing challenge. Cassandra is a flagship NoSQL database with decentralized, fault-tolerant, scalable, and low-cost features making it a core component of cloud computing systems. The more recent versions have greatly improved the security features, making it suitable for use in enterprise systems. When combined with Java and Spring frameworks, Cassandra can formulate a complete application stack thereby enabling efficient data management.

Mastering Cassandra is a power house of various advanced techniques that will help you become an expert in professional-level data management. This video course starts off from the essence of the web application architecture to setting up the environment with a single-node Cassandra cluster, and takes you to a level where you can build, implement, and secure web applications with ease.

In this step-by-step guide we will develop a real-time web portal application in Java and Cassandra. We'll start off by touching upon the major components of a Java web application and the development tools for the course, and then go deeper into the system analysis and designing of the CassandraWebTrader focusing on the Spring Framework projects. Through our journey to master Cassandra, we'll be working with core concepts and design patterns such as dependency injection, aspect-oriented programming, model-view-controller, and enterprise integration patterns.

We'll build the CassandraWebTrader and implement all the typical functions of a web application as well as demonstrate the application of modeling-by-query techniques of Cassandra data modeling. In addition to this, we'll understand the techniques and design trade-offs of a real-world complex system. Finally, we will ace production configuration of CassandraWebTrader and discuss the most pertinent tasks in our daily operations, such as application monitoring and database backup.

By the end of this course, you will be armed with all the knowledge needed to efficiently design and develop Java web applications using Cassandra.

About the Author

C Y Kan is an expert in system integration and has over 20 years of IT experience, including 15 years of project management and architect role in many large-scaled local and international projects. He received a Bachelor's degree from the University of Hong Kong and later a Master's degree from the University of Technology, Sydney and holds many professional qualifications such as PMP, PRINCE2 Practitioner, PMI-ACP, Scrum Master, CISSP, ITIL, TOGAF9 and SOA Certified Architect.

He has expertise and strong interests in software technologies and development methodologies, including enterprise architecture, Service-Oriented Architecture, Java-related technologies, Oracle databases, iOS application development, Scrum, Extreme Programming, agile software development, various kinds of project management methodologies.

What are the requirements?

  • All you need to get started is some basic Linux commands and knowledge of Java and Cassandra.

What am I going to get from this course?

  • Grasp the building blocks of the de facto multi-tier application architecture of Cassandra
  • Design, develop, and implement a Java-Cassandra web application and deploy it to production
  • Explore the unique features and capabilities offered by Cassandra's data model
  • Master the use and configuration of Spring Data Cassandra to make our application more powerful
  • Become proficient in programming in the MVC design pattern for enterprise-ready applications
  • Add a new responsive dimension to your web applications using Bootstrap
  • Integrate with frontend charts rendering JavaScript frameworks, D3.js, and Techan.js
  • Use and deploy Spring Boot application using JavaConfig
  • Make your web applications secure with Spring Security

What is the target audience?

  • If you are a web architect or a developer, who is passionate about developing Java applications with Cassandra, and is ready to take their skillset to an advanced level, this course is for you.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introducing Java Web Development
03:28

Explain the sections of the course.

04:45

Introduce the anatomy of a web application. Review the key concepts and the architectural components.

04:23

Start from the multilayered architecture to Java EE and web frameworks.

03:30

Learn about the design objectives of the persistence layer and how it can be implemented.

04:11

Talk about the functions that CassandraWebTrader will provide, its architecture, and the development approach.

Section 2: Setting Up Our Toolbox
03:13

Follow DataStax's recommendation to select Java 7.

02:18

Introduce Apache Maven. Download, install, configure, and verify the installation.

02:22

Introduce the Spring Tool Suite. Download, install, configure, and verify the installation.

03:45

Use Spring Boot as a catalyst to quickly develop a simple web application with minimal effort.

02:58

Introduce Apache Tomcat. Download, install, configure, and verify the installation, and set up the management interface.

Section 3: Designing CassandraWebTrader
02:57

We need to get a good understanding of what the user requirements are before designing. Describe both the functional and non-functional requirements and the different user roles.

03:19

We need to establish an easy-to-expand application foundation. Use modular design and apply good programming practices.

02:16

List the data entities that need to be stored in Cassandra. Create the corresponding CQL scripts.

02:55

Prepare the design principles. Put in place a naming convention guideline for different program units and adopt best practices in the application design.

02:48

Draft the screens to have a consistent style, look, and feel. Use a screen prototyping tool to draw the wireframes.

Section 4: Understanding the Spring Framework
06:14

We want to know what the vast Spring framework is about. Write a simple program to illustrate the main concept of dependency injection.

04:52

We want to know what Spring Web MVC is about. Write a simple web application using Spring Web MVC.

02:44

We want to know what Spring Security is about. Enhance a web application with Spring Security.

06:14

We want to know how to use Spring Data Cassandra to access a Cassandra database. Create a sample database and write a program to access it.

05:41

We want to know what Spring Integration is about. Implement a simple integration flow with Spring Integration.

Section 5: Deep Diving into Spring Data Cassandra
04:50

We want to use Spring Data Cassandra in application development. Learn about the basics and set up the maven dependencies.

03:33

We want to know different ways of accessing Cassandra. We use CqlTemplate and QueryBuilder to apply direct CQL statements.

03:15

We want to work with domain classes instead of low-level calls. We use CassandraTemplate and CassandraOperations to map to POJO.

04:08

We want to reduce boilerplate code and XML in a large project. Use dependency injection and JavaConfig to configure Cassandra programmatically.

05:07

We want to use a programmatic approach to manage Cassandra tables. We use CassandraAdminTemplate and CassandraAdminOperations to create, alter, and drop tables.

Section 6: Building CassandraWebTrader - Part 1
05:10

We want to use Spring Web MVC in application development. You will learn about Spring Boot in order to speed up the development process.

03:42

You will be learning about Spring annotations and taglibs. Use them to build forms and MVC classes.

04:40

We want to use Bootstrap in web application development. We use the sample and template from Bootstrap as a reference to tailor for our own.

03:27

We want to render stunning stock charts. We use D3JS and TechanJS to make interactive charts.

02:59

We want to enrich our application to send e-mail messages. Use Spring Boot Email to achieve this goal.

Section 7: Building CassandraWebTrader - Part 2
04:12

We want to make our web application internationalized. We use message bundles and the relevant taglibs.

07:58

We want to link the client-side input form with the backend Cassandra table. We use the GET and POST request methods and Spring Data.

04:52

We want to populate the database with historical prices. Use the free Yahoo! Finance end-of-day historical price service and Spring to automate collection and handling in a scheduled job.

04:43

We want to write a RESTful web service. We use Spring Web MVC to provide JSON data to integrate with the client-side TechanJS

04:54

We want to save member registration data. Use flash attributes to return the status message to the client side.

Section 8: Building CassandraWebTrader - Part 3
05:55

We want to secure some online functions for authenticated users only. Use Spring Security and its taglibs.

04:19

We want to program the logic for trading signals. Use the technical analysis technique and TA-Lib.

04:10

We want to save trading signals for different purposes. Use the design-by-query technique to get a denormalized table for each of the purposes.

04:41

We want to reduce coupling among different application components. We use Spring Integration and messages as a means of decoupling.

03:34

We want to provide role-based security for different users. We use Spring Security and its taglibs.

Section 9: Deploying to Production
03:40

We want control over who will receive the e-mail alerts. We use a secondary index to determine who the active members are.

03:01

We want to provide a self-served forgotten password function. We use a given username to look for the password and then e-mail it to the member.

03:02

We want to prepare the application for production deployment. Remove all the unnecessary classes, pages, and URLs and make the URLs context-path-sensitive.

03:24

We want to include monitoring and management functions for a production system. We enable Spring Boot Actuator in the production application.

05:50

We want to make the application deployable for production. We select the most appropriate approach out of the many options provided by Spring Boot.

Section 10: Conclusion
03:06

We will quickly revise and review what you've learned from this course. We will summarize the course with highlights on section topics.

04:26

We have references for further study. We will provide recommendations of some useful resources for reference.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Over the past ten years Packt Publishing has developed an extensive catalogue of over 2000 books, e-books and video courses aimed at keeping IT professionals ahead of the technology curve. From new takes on established technologies through to the latest guides on emerging platforms, topics and trends – Packt's focus has always been on giving our customers the working knowledge they need to get the job done. Our Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course