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.
Explain the sections of the course.
Introduce the anatomy of a web application. Review the key concepts and the architectural components.
Start from the multilayered architecture to Java EE and web frameworks.
Learn about the design objectives of the persistence layer and how it can be implemented.
Talk about the functions that CassandraWebTrader will provide, its architecture, and the development approach.
Introduce Apache Maven. Download, install, configure, and verify the installation.
Introduce the Spring Tool Suite. Download, install, configure, and verify the installation.
Use Spring Boot as a catalyst to quickly develop a simple web application with minimal effort.
Introduce Apache Tomcat. Download, install, configure, and verify the installation, and set up the management interface.
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.
We need to establish an easy-to-expand application foundation. Use modular design and apply good programming practices.
List the data entities that need to be stored in Cassandra. Create the corresponding CQL scripts.
Prepare the design principles. Put in place a naming convention guideline for different program units and adopt best practices in the application design.
Draft the screens to have a consistent style, look, and feel. Use a screen prototyping tool to draw the wireframes.
We want to know what the vast Spring framework is about. Write a simple program to illustrate the main concept of dependency injection.
We want to know what Spring Web MVC is about. Write a simple web application using Spring Web MVC.
We want to know what Spring Security is about. Enhance a web application with Spring Security.
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.
We want to know what Spring Integration is about. Implement a simple integration flow with Spring Integration.
We want to use Spring Data Cassandra in application development. Learn about the basics and set up the maven dependencies.
We want to know different ways of accessing Cassandra. We use CqlTemplate and QueryBuilder to apply direct CQL statements.
We want to work with domain classes instead of low-level calls. We use CassandraTemplate and CassandraOperations to map to POJO.
We want to reduce boilerplate code and XML in a large project. Use dependency injection and JavaConfig to configure Cassandra programmatically.
We want to use a programmatic approach to manage Cassandra tables. We use CassandraAdminTemplate and CassandraAdminOperations to create, alter, and drop tables.
We want to use Spring Web MVC in application development. You will learn about Spring Boot in order to speed up the development process.
You will be learning about Spring annotations and taglibs. Use them to build forms and MVC classes.
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.
We want to render stunning stock charts. We use D3JS and TechanJS to make interactive charts.
We want to enrich our application to send e-mail messages. Use Spring Boot Email to achieve this goal.
We want to make our web application internationalized. We use message bundles and the relevant taglibs.
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.
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.
We want to write a RESTful web service. We use Spring Web MVC to provide JSON data to integrate with the client-side TechanJS
We want to save member registration data. Use flash attributes to return the status message to the client side.
We want to secure some online functions for authenticated users only. Use Spring Security and its taglibs.
We want to program the logic for trading signals. Use the technical analysis technique and TA-Lib.
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.
We want to reduce coupling among different application components. We use Spring Integration and messages as a means of decoupling.
We want to provide role-based security for different users. We use Spring Security and its taglibs.
We want control over who will receive the e-mail alerts. We use a secondary index to determine who the active members are.
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.
We want to prepare the application for production deployment. Remove all the unnecessary classes, pages, and URLs and make the URLs context-path-sensitive.
We want to include monitoring and management functions for a production system. We enable Spring Boot Actuator in the production application.
We want to make the application deployable for production. We select the most appropriate approach out of the many options provided by Spring Boot.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.