Lone Star Software Symposium: Austin
July 11 - 13, 2008 - Austin, TX
View the event details here ».
Ramnivas Laddad
Author of AspectJ in Action, Principal at SpringSource
Ramnivas Laddad is a SpringSource Principal Enginner. He has over a decade of experience in applying his enterprise Java and aspect-oriented programming (AOP) expertise to middleware, design automation, networking, web application, user interface, and security projects.
Ramnivas Laddad is a well-known expert in enterprise Java, especially in the area of AOP and Spring. He is the author of AspectJ in Action, the best-selling book on AOP and AspectJ that has been lauded by industry experts for its presentation of practical and innovative AOP applications to solve real-world problems. Ramnivas, a Spring framework committer, is also an active presenter at leading industry events such as JavaOne, JavaPolis, No Fluff Just Stuff, SpringOne, Software Development, and has been an active member of both the AspectJ and Spring communities from their beginnings.
Presentations
Simplifying Enterprise Applications with Spring, Part 1
Developing enterprise applications ain't easy. You not only have to worry about constantly evolving business logic, but also need to address infrastructure concerns ranging from transaction management and security to manageability and integration with diverse external applications. Spring, the most popular lightweight enterprise application framework, comes to the rescue by simplifying the common needs of enterprise applications. This session (part 1 of 2) presents the core concepts of the Spring Framework.
In this session we discuss the motivations behind the Spring way of creating enterprise applications. We cover the core ideas such as POJOs, dependency injection, container configuration, aspect-oriented programming, and portable abstraction layers. We also show how all of these concepts work together using a simple application. By the end of this session, you will have a clear idea of what Spring is and what it can do for you.
Simplifying Enterprise Applications with Spring, Part 2
This session (part 2 of 2) will cover advanced concepts in the Spring framework. While the core concepts in the first session will get you started with Spring, the advanced concepts in this session will help you be more effective at developing Spring-based applications.
In this session, we will cover several advanced concepts including how to extend Spring to meet your special requirements. We will also cover effective ways to test your Spring applications. You will learn how to use Spring effectively across a wide range of technical areas such as web applications, persistence, messaging, manageability, batch processing, and security. By the end of this session, you will be ready to start using Spring - or if you have already started using Spring, you should be able to do so more effectively.
Enterprise Security with Spring
Spring Security (formerly known as 'Acegi') enables self-contained, consistent, and extensible solutions for securing your applications. Version 2.0 provides major enhancements including a domain-specific XML namespace, convention-based defaulting, and annotation support. This provides a significantly simpler experience for developers while still supporting the same degree of flexibility.
Spring Security's interceptor-based approach is non-invasive even when extended to accommodate domain-specific requirements. The two main security processes (authentication and authorization) are decoupled in order to provide flexibility across a wide variety of providers and strategies. This presentation will include an overview of Spring Security's pluggable authentication process and how it accommodates a wide range of possibilities including Database, LDAP, Single Sign On, and even an in-memory option for development and testing. We will then proceed to cover authorization where you will see its consistent approach for securing web requests and method invocations. Throughout the session, we will walk through a sample application that demonstrates Spring Security's core features.
Architecture Enforcement with AOP
Aspect-oriented programming (AOP) is a proven paradigm for enforcing broad organizational policies. In this session, we will explore the definition and enforcement of software architecture policies to help keep a code base clean. We will examine several reusable examples you can apply within your own organization to catch architectural violations.
Architectural policies originate from a variety of sources: consensus among developer community about generally accepted programming idioms and best practices, your own ideas on what a good architecture looks like, requirements of the underlying framework, core architecture of the specific project, and specific design choices made by the team on a project. In short, policies represent accumulated knowledge to create better quality software. If there is no enforcement, the errors may go undetected during development and show up only in the deployed system. Often if one error is allowed to go undetected, the associate code often ends up mistaken as design pattern.
In this session, we look at ways to implement architectural enforcement policies along with many reusable examples. Attendees will learn to define policies, and ensure architectural violations are detected immediately upon their introduction into a code base leading to a solid implementation that is faithful to its design.
Leveraging annotations with AOP
Specifying metadata using annotations has gained huge popularity since its introduction in Java 5. However, the story on consuming annotations isn't as clear. Reading and processing annotation is still a complex process often requiring you to understand byte-code manipulation tools and their low-level API. As a result, most developers shy away from using custom annotations, limiting their usages of annotations only those prescribed by frameworks. The result is missed opportunities for programming simplification. In this session, we explore how AOP can make it a simple task to consume annotation in a powerful manner.
This session explores many opportunities to consume annotations using Spring AOP and AspectJ. The examples discussed in this session cover a wide range from auditing, monitoring to security, transaction management, and policy enforcement. It also examines best practices in using annotations to avoid pre-processor like use of them.
Books
by Ramnivas Laddad
-
To allow the creation of truly modular software, OOP has evolved into aspect-oriented programming. AspectJ is a mature AOP implementation for Java, now integrated with Spring.
AspectJ in Action, Second Edition is a fully updated, major revision of Ramnivas Laddad's best-selling first edition. It's a hands-on guide for Java developers. After introducing the core principles of AOP, it shows you how to create reusable solutions using AspectJ 6 and Spring 3. You'll master key features including annotation-based syntax, load-time weaver, annotation-based crosscutting, and Spring-AspectJ integration. Building on familiar technologies such as JDBC, Hibernate, JPA, Spring Security, Spring MVC, and Swing, you'll apply AOP to common problems encountered in enterprise applications.
This book requires no previous experience in AOP and AspectJ, but it assumes you're familiar with OOP, Java, and the basics of Spring.
"Clear, concisely worded, well-organized ... a pleasure to read."
-From the Foreword by Rod Johnson, Creator of the Spring Framework
"This book teaches you how to think in aspects. It is essential reading for both beginners who know nothing about AOP and experts who think they know it all."
-Andrew Eisenberg, AspectJ Development Tools Project Committer
"Ramnivas showcases how to get the best out of AspectJ and Spring."
-Andy Clement, AspectJ Project Lead
"One of the best Java books in years."
-Andrew Rhine, Software Engineer, eSecLending
"By far the best reference for Spring AOP and AspectJ."
-Paul Benedict, Software Engineer, Argus Health Systems
"Ramnivas expertly demystifies the awesome power of aspect-oriented programming."
-Craig Walls, author of Spring in Action
-
To allow the creation of truly modular software, OOP has evolved into aspect-oriented programming. AspectJ is a mature AOP implementation for Java, now integrated with Spring.
AspectJ in Action, Second Edition is a fully updated, major revision of Ramnivas Laddad's best-selling first edition. It's a hands-on guide for Java developers. After introducing the core principles of AOP, it shows you how to create reusable solutions using AspectJ 6 and Spring 3. You'll master key features including annotation-based syntax, load-time weaver, annotation-based crosscutting, and Spring-AspectJ integration. Building on familiar technologies such as JDBC, Hibernate, JPA, Spring Security, Spring MVC, and Swing, you'll apply AOP to common problems encountered in enterprise applications.
This book requires no previous experience in AOP and AspectJ, but it assumes you're familiar with OOP, Java, and the basics of Spring.
"Clear, concisely worded, well-organized ... a pleasure to read."
-From the Foreword by Rod Johnson, Creator of the Spring Framework
"This book teaches you how to think in aspects. It is essential reading for both beginners who know nothing about AOP and experts who think they know it all."
-Andrew Eisenberg, AspectJ Development Tools Project Committer
"Ramnivas showcases how to get the best out of AspectJ and Spring."
-Andy Clement, AspectJ Project Lead
"One of the best Java books in years."
-Andrew Rhine, Software Engineer, eSecLending
"By far the best reference for Spring AOP and AspectJ."
-Paul Benedict, Software Engineer, Argus Health Systems
"Ramnivas expertly demystifies the awesome power of aspect-oriented programming."
-Craig Walls, author of Spring in Action
by Ramnivas Laddad
by Ramnivas Laddad
-
A guide to aspect-oriented programming and the AspectJ language, this book provides code examples that enable quick implementation of functionality in a system. Thorough introductions to AOP and AspectJ will help developers learn or advance their knowledge of AspectJ. Examples of everyday situations in which AspectJ solutions can be applied, such as logging, policy enforcement, resource pooling, business logic, thread-safety, authentication and authorization, and transaction management are provided. In addition, design patterns and idioms are covered, as is business rule implementation. The latest technologies, such as JEES, JAAS, and log4j, are explained and connected with AspectJ.
-
A guide to aspect-oriented programming and the AspectJ language, this book provides code examples that enable quick implementation of functionality in a system. Thorough introductions to AOP and AspectJ will help developers learn or advance their knowledge of AspectJ. Examples of everyday situations in which AspectJ solutions can be applied, such as logging, policy enforcement, resource pooling, business logic, thread-safety, authentication and authorization, and transaction management are provided. In addition, design patterns and idioms are covered, as is business rule implementation. The latest technologies, such as JEES, JAAS, and log4j, are explained and connected with AspectJ.
by Kal Ahmed, Sudhir Ancha, Andrei Cioroianu, Jay Cousins, Jeremy Crosbie, John Davies, Kyle Gabhart, Steve Gould, Ramnivas Laddad, Sing Li, Brendan Macmillan, Daniel Rivers-Moore, Judy Skubal, Karli Watson, Scott Williams, and James Hart
-
Java is a powerful and fast maturing development platform used to create client/server applications on any platform. XML is the most recent markup language, a standard format for the universal sharing of data and an intrinsic part of all major development both on the Web, and in the wider business community. Enterprise web applications are increasingly combining Java and XML technologies to provide more efficient ways to integrate Internet presence with business systems in the world of e-commerce.
This core professional compendium breaks down into three main sections. The first presents the basic XML standards, Java APIs and programming tools for handling XML. The second part presents a selection of Java techniques which make up the building blocks for XML-based applications. The section is Java-centric, and presents the common scenarios for XML data I/O, building on the basic tools presented in part one. The final and largest section of the book shows how XML applications can be built on top of the techniques shown in part two, and demonstrates how XML can be used to solve real programming problems.
If you want a hefty box of XML manipulation tools at your disposal and would like to discover how the language could be used in your Java applications, then this book is for you.
-
Java is a powerful and fast maturing development platform used to create client/server applications on any platform. XML is the most recent markup language, a standard format for the universal sharing of data and an intrinsic part of all major development both on the Web, and in the wider business community. Enterprise web applications are increasingly combining Java and XML technologies to provide more efficient ways to integrate Internet presence with business systems in the world of e-commerce.
This core professional compendium breaks down into three main sections. The first presents the basic XML standards, Java APIs and programming tools for handling XML. The second part presents a selection of Java techniques which make up the building blocks for XML-based applications. The section is Java-centric, and presents the common scenarios for XML data I/O, building on the basic tools presented in part one. The final and largest section of the book shows how XML applications can be built on top of the techniques shown in part two, and demonstrates how XML can be used to solve real programming problems.
If you want a hefty box of XML manipulation tools at your disposal and would like to discover how the language could be used in your Java applications, then this book is for you.
