среда, 25 апреля 2012 г.

Сертификация по Spring Framework

Обязательным этапом является прохождение соответствующего для сертификата 4-х дневного курса. Суммарно надо будет оплатить сам курс, экзамен(-ы), транспортные расходы. Иногда курсы могут быть и в Минске. Время и место курсов тут: Курсы SpringSource

Для гарантированной сдачи сертификата требуется подготовка кроме курса.
Экзамен можно проходить несколько раз, а курс требуется пройти только 1 раз. В Беларуси проводить экзамен могут:
IBA (тренинг-центр)
BelSoft (тренинг-центр)
Центр Знаний (http://knowledgeforit.com/index.php?lang=by)
Высший Колледж Связи

В первую очередь сертификация нужна тем, кто планирует поиск серьезной работы за рубежом. В Беларуси данный сертификат не критичен для поиска хорошей работы. Возможно, более подходящим вариантом будет онлайн-тестирование, например:
http://knowledgeblackbelt.com
http://www.brainbench.com

Всего есть три сертификата от SpringSource:
-Certified Spring Professional
-Certified Spring Web Application Developer
-Certified Spring Enterprise Application Specialist

Certified Spring Professional

Показывает наличие всех знаний по Core Spring. В следующей табличке сведены все необходимые пункты для прохождения экзамена.

1 Introduction to Spring


  • The Spring application context
  • XML configuration
  • Working with existing singletons and factories
  • Working with multiple configuration files
  • 8 Integrating Spring with Hibernate


  • Quick introduction to ORM with Hibernate
  • Benefits of using Spring with Hibernate
  • Hibernate configuration in Spring
  • Exception handling
  • 2 Understanding the Bean Life Cycle


  • XML namespaces
  • Initialization, use, and destruction phases
  • Working with Spring interceptors
  • Externalizing constant values into properties files
  • Bean scopes
  • 9 Database Transactions with Spring


  • Declaring a Spring Transaction Manager
  • @Transactional annotation
  • Configuring isolation levels
  • Configuring transaction propagation
  • Transactions and integration testing
  • 3 Simplifying Application Configuration


  • Bean definition inheritance
  • Inner beans
  • p and util namespaces
  • Dependency injection of collections
  • Spring Expression Language (SpEL)
  • 10 Spring in a Web Application


  • Configuring Spring in a Web application (using Spring MVC, Struts, JSF)
  • Introduction to Spring MVC
  • Defining Spring MVC controllers using annotations
  • Spring MVC in the view layer
  • MVC namespace (new in Spring 3.0)
  • 4 Annotation-Based Dependency Injection


  • Autowiring and component scanning
  • Stereotype annotations
  • Java-based configuration
  • Mixing configuration styles
  • When to use XML, annotations, and Java configuration
  • 11 Spring Security


  • What problems does Spring Security solve?
  • Configuring authentication
  • Intercepting URLs
  • The Spring Security tag library for JSPs
  • Security at the method level
  • Customizing the Spring Security filter chain
  • 5 Testing a Spring-Based Application


  • Annotations for integration testing with Spring (using JUnit)
  • Advanced concepts: application context caching and the @DirtiesContext annotation
  • 12 Remoting


  • Problems with traditional RMI
  • Using Spring remoting over RMI
  • Using the Spring HttpInvoker for remote access over HTTP
  • 6 Aspect-Oriented Programming


  • What problems does AOP solve?
  • Differences between Spring AOP and AspectJ
  • Defining pointcut expressions
  • How to use the types of advice: around, before, after
  • 13 JMS


  • Introduction to JMS
  • Configuring JMS resources with Spring
  • Sending and receiving messages using the Spring JmsTemplate and message listener containers
  • 7 Data Access and JDBC with Spring


  • How Spring integrates with existing data access technologies
  • DataAccessException hierarchy
  • jdbc namespace
  • Simplifying jdbc access using the Spring JdbcTemplate
  • 14 JMX


  • Introduction to JMX
  • Configuring Spring to export MBeans automatically
  • Exporting a Spring bean as an MBean

  • Другой вариант списка тут.

    Подготовка к экзамену осуществляется по следующему плану:

    1. Внимательное изучение книги "Spring in Action, 3rd edition" - учебник по Spring 3.0. При изучении обязательно самостоятельное исследование изученного на практике. Иначе все прочитанное не усвоится.

    2. Прочтение "Pro Spring 2.5" - продвинутый учебник по Spring 2.5 (по 3.0 нет, но все равно следует прочитать, т.к. дает углубленное понимание концепций).

    3. Практическое изучение. Делается так:
    Открывает документ http://www.springsource.com/files/core-spring-3.0-certification-study-guide_0.pdf
    Читаем, как только появляется вопрос, который вызывает хоть малейшие сомнения, то:
    -Изучаем вопрос по мануалу Spring Framework Reference 3.0.x
    -Практикуемся по вопросу, пока остаются белые пятна в понимании
    Когда данный документ прочитан, можно повторить тоже самое с любым онлайн-тестом либо с вышеуказанной таблицой.

    4. Непосредственно перед экзаменом тестируем свои знания на
    http://knowledgeblackbelt.com
    http://www.brainbench.com

    Certified Spring Web Application Developer

    Подтверждает умение использовать Spring технологии в разработке Web-приложений.

    Включает в себя следующие вопросы:


    Spring Web MVC:
      Spring MVC annotation-based programming model
      Page composition with layout technologies such as Tiles
      Rendering multiple content types
      Handling exceptions
      Processing form pages
      Internationalization and personalization
    
    Spring Web Flow:
      Introduction to Spring Web Flow
      Authoring flow definitions
      View states, events and transitions
      Adding flow behavior
      Working with scoped data
      Using the Web Flow integration with JSF
    
    Spring Security:
      Securing a web application with Spring Security
    
    Integration With Client Technologies:
      Modern Web UI
      Progressive enhancement, accessibility, web design
      Working with HTML, CSS and JavaScript
      Using a JavaScript framework (Dojo) for DOM scripting and UI widgets
      Integrating Flex clients with Spring applications
    
    Rapid Application Development:
      Using Grails and Spring Roo
    


    Подготовка к экзамену осуществляется по следующему плану:

    1. Внимательное изучение книги "Spring in Action, 3rd edition" - учебник по Spring 3.0. При изучении обязательно самостоятельное исследование изученного на практике. Иначе все прочитанное не усвоится.

    2. Практическое изучение такое же как и на 4-х дневном курсе:

    Develop web applications using the Spring Framework
    Use Spring Web Flow to implement stateful interactions
    Secure web applications with Spring Security
    Test web applications for correctness and performance
    Create rich web user interfaces with HTML, CSS, and JavaScript
    Connect a Flex client to a Spring back-end with Spring BlazeDS
    Put it all together with rapid productivity tools like Grails and Spring Roo
    Use the SpringSource Tool Suite and Spring Insight

    Т.е. надо разработать веб-приложение c такими фишками:
    -Web Flow для работы с состоянием приложения и перехода между страницами
    -Авторизация и аутентификация с помощью Spring Security
    -Тесты функционала и производительности средствами Spring
    -UI используя Spring MVC (формы, тайлы) и HTML/CSS/JavaScript, добавить 
     на UI Flex объект и связать его с приложением через BlazeDS
    -Связать все вместе с помощью средств автоматизации разработки Grails и Roo
    -При всем этом поюзать тулы SpringSource Tool Suite и Spring Insight
    
    Цель практики это опытное запоминание технологии. При практике важно тщательно контролировать степень понимания той или иной вещи и не допускать неполного понимания.

    4. Непосредственно перед экзаменом тестируем свои знания на
    http://knowledgeblackbelt.com http://www.brainbench.com

    Certified Spring Enterprise Application Specialist

    Сертификат показывает:
    1) Понимание концепций, специфичных для распределённых данных и вычислений, которые являются неизменным атрибутом приложений промышленного масштаба
    2) Понимание как и зачем использовать Spring для обеспечения данных концепций
    3) Понимание архитектуры Spring Integration, умение её применять
    4) Умение использовать Spring Batch для автоматизации и обслуживания приложений.

    Экзамен покрывает следующие области:

    1 Introduction
     •Styles of enterprise integration
     •File transfer, remoting, and Web services
    2 Tasks and Scheduling
     •Introduction to concurrency
     •Java Concurrency APIs
     •Spring task scheduling support namespace
     •@Scheduled and @Async annotations
    3 Remoting
     •Limitations of “plain” RMI
     •Benefits of using Spring remoting
     •Spring remoting over RMI
     •Spring HttpInvoker 
     •Hessian and Burlap support
    4 SOAP Web Services with Spring WS
     •Web services best practices
     •Introduction to Spring Web services
     •Object-XML mapping with the Spring OXM abstraction layer
     •Client access with WebServiceTemplate
     •Error handling
     •Out-of-container testing
    5 RESTful Web Services
     •Core REST concepts
     •REST support in Spring 3.x
     •REST specific annotations in Spring
     •Client access with RestTemplate
    6 Working with JMS
     •Introduction to JMS
     •Configuring JMS resources with Spring
     •Sending and receiving messages using Spring JmsTemplate 
             and message listener containers
    7 Transactional JMS
     •Why use JMS transactions
     •Transactional JMS resources with Spring
     •Duplicate message handling
    8 Global Transaction Management (XA and JTA)
     •Two-phase commit and XA
     •JTA and Spring
     •Configuring JtaTransactionManager
     •Transaction demarcation
    9 Introduction to Spring Integration
     •Goals of Spring Integration
     •Core components of Spring Integration
     •Defining channels, message endpoints, and gateways
     •Spring Integration namespaces
     •Eclipse-based Visual Editor for Spring Integration
    10 Configuring Spring Integration
     •Channel types and polling
     •Synchronous and asynchronous handoff
     •Synchronous and asynchronous error handling
     •Advanced endpoint types: bridge and router
     •Working with MessagingTemplate
    11 Spring Integration Advanced Features
     •Splitting and aggregating messages
     •Dispatcher configuration
     •XML support: XPath, XSLT, Object-XML mapping
    12 Introduction to Spring Batch
     •Spring Batch high-level overview
     •Working with jobs, steps, readers, and writers
     •Job parameters and job identity
     •Batch state persistence in the database
     •Spring Batch quick-start example
    13 Restart and Recovery with Spring Batch
     •Stateful ItemReaders/Writers
     •Reading flat files
     •Introduction to skip, retry, repeat, and restart
     •Spring Batch listeners
    14 Spring Batch Admin and Scaling Batch Jobs
     •The Spring Batch Admin Web console
     •Scaling and parallel processing
     •Multithreaded and parallel steps
     •Partitioning
    


    Подготовка включает в себя изучение теории (Spring Integration in Action или Pro Spring Integration) и практические тренировки. Для идей практических тренировок можно взять элементы курса.

    Вот элементы курса в оригинале:

    •Use Spring to create concurrent applications and schedule tasks
    •Use remoting to implement client-server applications
    •Use Spring Web services to create loosely coupled SOAP-based Web services and clients
    •Use Spring-MVC to create RESTful Web services and clients
    •Use JMS for asynchronous messaging-based communication
    •Understand and use local and distributed transactions
    •Use Spring Integration to create event-driven pipes-and-filters architectures 
     and integrate with external applications
    •Use Spring Batch for managed, scalable batch processing that is based on both 
     custom and built-in processing components
    


    Как видим, эта практика покрывает практически все пункты экзамена, но последние 3 пункта курса (транзакции, архитектура Spring Integration, работа с Spring Batch) более сложны и обширны чем первые 5.

    Комментариев нет: