I try to cover Concepts & Interview FAQs on Core-Java/J2EE, C++, OOAD, Design Patterns, Architectures
Wednesday, 12 December 2012
"Points You Should Remember While Designing a Solution "
1) Partitions of Application
2) Ease of Use ( Use Abstraction to use loose
coupling between layers.)
3) Structuring – ( Communication of components)
4) Performance ( Use of Caching)
5) Maintanance (Logging and instrumentation)
6) Secuirty (Authentication & Authorization)
7) Secuirty ( How pass sensitive data
over network)
8) Exception Management
9) Session Management
10) Validation
Sunday, 9 December 2012
Thursday, 31 May 2012
Tuesday, 29 May 2012
Monday, 28 May 2012
Sunday, 27 May 2012
Saturday, 26 May 2012
Friday, 25 May 2012
Thursday, 24 May 2012
"Restful WebServices" - in NutShell
Intro:
1) REST is an Arch style, based on
a) Web Standards
b) HTTP Protocol
2) Everything is a "RESOURCE"
3) REST Client ---> REST Service
4) Resources are identified as "Global IDs" (URLs)
5) HTTP Methods - (GET, PUT, POST, DELETE)
6) MIME Types are - (XML , Text, JSON, User-defined..)
7) JAX-RS supports
a) XML
b) JSON (via JAXB)
8) JAVA -> REST -> JERSEY
9) Register Servlet provided by Jersey Via "Web.xml"
10) Define the PATH, under which your Application is available
Base URL of Servlet is
http://your_domain:port/display-name/url-pattern/path_from_rest_class
11)This servlet which analyze the incoming HTTP request and select the correct class and method to respond to this request. This selection is based on annotation in the class and methods.
12) The complete path to a resource is therefore based on the base URL and the @PATh annotation in your class.
13) JERSEY - contains "Rest Server" + "Rest Client"
1) REST is an Arch style, based on
a) Web Standards
b) HTTP Protocol
2) Everything is a "RESOURCE"
3) REST Client ---> REST Service
4) Resources are identified as "Global IDs" (URLs)
5) HTTP Methods - (GET, PUT, POST, DELETE)
6) MIME Types are - (XML , Text, JSON, User-defined..)
7) JAX-RS supports
a) XML
b) JSON (via JAXB)
8) JAVA -> REST -> JERSEY
9) Register Servlet provided by Jersey Via "Web.xml"
10) Define the PATH, under which your Application is available
Base URL of Servlet is
http://your_domain:port/display-name/url-pattern/path_from_rest_class
11)This servlet which analyze the incoming HTTP request and select the correct class and method to respond to this request. This selection is based on annotation in the class and methods.
12) The complete path to a resource is therefore based on the base URL and the @PATh annotation in your class.
http://your_domain:port/display-name/url-pattern/path_from_rest_class
13) JERSEY - contains "Rest Server" + "Rest Client"
Wednesday, 23 May 2012
Spring - in NutShell
Advantages of Spring:
1) Layered Arch (only take what you need !! )
2) Enables POJO Programming
3) DI & IOC simplifies JDBC
4) Open Source
Advantages of IoC:
1) Lesser Source Code
2) Making Application - more testable
a) no need of Singletons
b) no need of DNS lookups
3) Loose Coupling
4) IOC Containers support
a) Eager Instantiation
b) Lazy Loading of Services
Injections:
1) Setter Injection
2) Constructor Injection
Modules:
1) Core Container
2) Spring- Context
3) Spring- AOP
4) Spring-DAO
5) Spring-ORM
6) Spring- Web Module
7) Spring- MV Framework
Advantages of Application Context:
1) Resolving "text Messages"
2) Support for "internationalisation"
3) Generic way to load - "File Resources"
4) Sending Events to BEANs (which registered as Listeners)
Multiple Context Files:
Splitting Web Application Context into
1) Persistance.xml
2) Transaction.xml
3) Service.xml
Spring - Features
1) Light Wt
2) Inversion Of Control
3) Aspect Oriented (AOP)
4) Container
5) MVC Framework
6) Transaction Management
7) JDBC Exception Handling
2) Inversion Of Control
3) Aspect Oriented (AOP)
4) Container
5) MVC Framework
6) Transaction Management
7) JDBC Exception Handling
Annotations in Spring 3.0
@Controller
@RequestMapping("/language")
@Inject
@Component
@AutoWired
@NotBlank
@Service
@Secure
@PathVariable
@RequestMapping("/language")
@Inject
@Component
@AutoWired
@NotBlank
@Service
@Secure
@PathVariable
Disadvantages of "Struts "
1) Unable to carry out - UNIT Testing
2) problems of Exception handling
3) Robust Framework
4) Learning Curve - slow
Tough to learn & tough to master it
5) It only takes care of CONTROLLER. & focuses more on VIEW Part.
It doesn't help you to develop MODEL,
It doesn't support "Event Driven MODEL"
2) problems of Exception handling
3) Robust Framework
4) Learning Curve - slow
Tough to learn & tough to master it
5) It only takes care of CONTROLLER. & focuses more on VIEW Part.
It doesn't help you to develop MODEL,
It doesn't support "Event Driven MODEL"
Tuesday, 22 May 2012
Components of "Presentation Layer"
Components of "Presentation Layer"
-----------------------------------------
1) Page Display
HTML -> Static Content
JSP -> Dynamic Content
2) User Validation
Client Side -> Validation
Server Side -> Validation
3) Data Processing
4) Navigation
5) Security
-----------------------------------------
1) Page Display
HTML -> Static Content
JSP -> Dynamic Content
2) User Validation
Client Side -> Validation
Server Side -> Validation
3) Data Processing
4) Navigation
5) Security
Concurrency with Java Threads
1) basic "Notify Events" - can not be queued.
- if no threads waiting, Notify() - does nothing..
2) If you need "NOTIFICATIONS" be queued, we need to go beyond Wait()/Notify()/NotifyAll()
- a) Semaphore (without Buzy waiting..)
- b) Cyclic Barrier
- c) CountDown Latch
Wait() - Notify() NotifyAll()
Synchronized(Mutex)
Thread-Singalling
Thread-Yielding
"Volatile " - in Threads
- if no threads waiting, Notify() - does nothing..
2) If you need "NOTIFICATIONS" be queued, we need to go beyond Wait()/Notify()/NotifyAll()
- a) Semaphore (without Buzy waiting..)
- b) Cyclic Barrier
- c) CountDown Latch
Wait() - Notify() NotifyAll()
Synchronized(Mutex)
Thread-Singalling
Thread-Yielding
"Volatile " - in Threads
Sunday, 20 May 2012
For Better Performance for Web Application
1) DNS Lookups - switch off
2) Don't load Modules, which are not needed.
3) Try to minimize the "Logging"
4) incorrect - DB Usage
5) unnecessary Remoting
6) incorrectly implemented "Concurrency"
7) Badly Performing Libraries
8) Excessive memory Usage..
9) Improper Caching
10) Unnecessarily usage of XML
11) incorrect APP Server - Configuration
12) Excessive Logging
2) Don't load Modules, which are not needed.
3) Try to minimize the "Logging"
4) incorrect - DB Usage
5) unnecessary Remoting
6) incorrectly implemented "Concurrency"
7) Badly Performing Libraries
8) Excessive memory Usage..
9) Improper Caching
10) Unnecessarily usage of XML
11) incorrect APP Server - Configuration
12) Excessive Logging
Saturday, 19 May 2012
Subscribe to:
Posts (Atom)