The Tata’s world’s cheapest Rs 1-lakh($2500) car was launched(unveiled) recently at the 9th Auto Expo in New Delhi by Chairman Ratan Tata. The car is named as “NANO”
Mr. Ratan Tata said that this car meets all safety and emission norms and emissions are lower than 2 wheelers. The car has 21% more interior space than much popular Maruti 800, which makes it more special. The car would be indeed launched at a price 1 lakh + VAT + Transportation.
Speaking at the unveiling ceremony at the 9th Auto Expo in New Delhi, Mr. Ratan N. Tata said,“I observed families riding on two-wheelers , the father driving the scooter, his young kid standing in front of him, his wife seated behind him holding a little baby. It led me to wonder whether one could conceive of a safe, affordable, all-weather form of transport for such a family. Tata Motors Engineers and Designers gave all their energy and efforts for about four years to realise this goal. Today, we indeed have a People’s Car, which is affordable and yet built to meet safety requirements and emission norms, to be fuel efficient and low on emissions. We are happy to present the People’s Car to India and we hope it brings the joy, pride and utility of owning a car to many families who need personal mobility.”
Specifications and features of 1 lakh car Nano:
* Stylish, comfortable
Yet with a length of 3.1 metres, width of 1.5 metres and height of 1.6 metres, with adequate ground clearance, it can effortlessly manoeuvre on busy roads in cities as well as in rural areas. Its mono-volume design, with wheels at the corners and the powertrain at the rear, enables it to uniquely combine both space and manoeuvrability, which will set a new benchmark among small cars.
When launched, the car will be available in both standard and deluxe versions. Both versions will offer a wide range of body colours, and other accessories so that the car can be customised to an individual’s preferences.
* Fuel-efficient engine
The People’s Car has a rear-wheel drive, all-aluminium, two-cylinder, 623 cc, 33 PS, multi point fuel injection petrol engine. This is the first time that a two-cylinder gasoline engine is being used in a car with single balancer shaft. The lean design strategy has helped minimise weight, which helps maximise performance per unit of energy consumed and delivers high fuel efficiency. Performance is controlled by a specially designed electronic engine management system.
* Meets all safety requirements
The People’s Car’s safety performance exceeds current regulatory requirements. With an all sheet-metal body, it has a strong passenger compartment, with safety features such as crumple zones, intrusion-resistant doors, seat belts, strong seats and anchorages, and the rear tailgate glass bonded to the body. Tubeless tyres further enhance safety.
* Environment-friendly
The People’s Car’s tailpipe emission performance exceeds regulatory requirements. In terms of overall pollutants, it has a lower pollution level than two-wheelers being manufactured in India today. The high fuel efficiency also ensures that the car has low carbon dioxide emissions, thereby providing the twin benefits of an affordable transportation solution with a low carbon footprint.
(For more information visit www.tatapeoplescar.com )
Nano, the world’s cheapest car, is expected to be commercially launched in the second half of 2008.
The 1 lakh car was a major concern for the environmentalists and other who raised concern about the pollution and concession caused by the car if it was wide accepted in the market. The target audience of the car is basically two wheeler buyers who would like to own a car and also second hand small car buyers. Mr Tata refuted these claims and said that the car would be least polluting and as far as congestion is concerned, something that needs to be acted upon is the infrastructure. Stopping someone from making a car that would be affordable to common people nation wide is not an answer.
The car if successful will definitely revolutionize the four wheeler segment in the country and around the world.
Some pictures of "Nano"

Saturday, January 12, 2008
Tata Nano-just $2500 car unveiled in India
Friday, January 11, 2008
Things to watch out for Java Developer in 2008-Part 3
In continuation of the series of articles I started discussing about the technologies to watch out for Java Developer in 2008,in this final part I would like mention about
Google Android and SOA(Security).
I would like to start with SOA security.SOA has been such a buzzword since last year and more & more enterprises are now turning to a new IT architectural approach called Service-Oriented Architecture (SOA).And there in lies the challenge for managing the security of SOA enterprise applications.Security in IT can be broadly classified as network security,
platform security, and application security .Application security is the main area of focus in SOA architecture
The basic definition of SOA is ,Service Oriented Architecture (SOA) is an architectural style that guides all aspects of creating and using business processes, packaged as services, throughout their lifecycle, as well as defining and provisioning the IT infrastructure that allows different applications to exchange data and participate in business processes loosely coupled from the operating systems and programming languages underlying those applications. SOA represents a model in which functionality is decomposed into distinct units (services), which can be distributed over a network and can be combined together and reused to create business applications.These services communicate with each other by passing data from one service to another, or by coordinating an activity between two or more services.
Web services were developed as a way to enable the creation of reusable code, simplify development, and streamline system integration. While these goals were met, the open standards that emerged have not yet fully addressed security. Specifically, XML, SOAP, WSDL, and UDDI are open standards that enable the transmission and description of data and procedure calls between systems.And none of these open standards have inherent security model.So why do we need open standards?The answer is,Open standards must be adopted to enable integration across enterprises.
Orchestration of business processes across multiple suppliers, partners,
and customers must be possible,thats why.
In the context of SOA, instead of securing a single application, you should
secure the architecture. On one hand, you need to keep the services open so that applications, both internal and external, can easily reuse them. On the other hand, unless these services are properly secured, they can be misused to cause security breaches. How do we secure services without reducing reusability?So how best can we secure our SOA applications?
The answer is ,standards such as WS-Security, SAML, WS-Trust and WS-SecurityPolicy and Application-oriented Networking (AON).
SOA adopts three approaches for application security and they are Message-level security,Security as a service,Policy-driven security.
WS-Security allows message-level security to be implemented with SOAP.
A security service can offer applications the ability to authenticate, authorize,
encrypt/decrypt messages, sign messages/verify signatures,and log messages.It may also scrub messages to protect applications against known and unknown vulnerabilities.SOA supports standards such as Security Assertion Markup Language (SAML) and WS-Trust that can be used to implement such a service.
A security policy declaration becomes handy in enabling Security requirements and mechanisms not to be hard-wired into applications.Thats where security policy comes in handy.It separates security logic from business logic, leaving the former to security specialists. It becomes easier to ensure consistency of security enforcement across multiple applications.
WS-SecurityPolicy is the standard that is emerging to make this new approach possible
Other standards are,WS-Federation Web Services Federation Language
This specification defines mechanisms to allow different security realms to federate by allowing and brokering trust of identities, attributes, authentication between participating Web services.
WS-Security Describes enhancements to SOAP messaging to provide quality of protection through message integrity, message confidentiality, and single message authentication.
WS-SecureConversation Defines extensions that build on WS-Security to provide secure communication. Specifically, it defines mechanisms for establishing and sharing security contexts, and deriving session keys from security contexts.
WS-Trust Defines extensions that build on WS-Security to request and issue security tokens and to manage trust relationships.
XML-Encryption Specifies a process for encrypting data and representing the result in XML.
Application-oriented Networking (AON) Application-oriented networking has arisen in response to increasing use of XML messaging (combined with related standards such as XSLT, XPath and XQuery) to link miscellaneous applications, data sources and other computing assets. Many of the operations required to mediate between these different participants, or to monitor their exchanges, can be built into network devices that are optimized for the purpose. The rules and policies for performing these operations, also expressed in XML, are specified separately and downloaded as required
For further understanding,read the following articles.
“Web Services Architecture,”is available at
http:// www.w3.org/TR/2004/NOTE-ws-arch-20040211/.
“Security in a Web Services World: A Proposed Architecture and Roadmap,” a white paper published in 2002 by IBM and Microsoft, is available at http://www.ibm.com/developerworks/library/ws-secmap/.
Apache WSS4J,a publicly available extension of Apache Axis 1.x to add limited support for security, is available at http://ws.apache.org/wss4j/.
Apache Rampart, a publicly available extension of Apache Axis2 to add limited support for security, is available at http://ws.apache.org/axis2/modules/
rampart/1_0/security-module.html.
Cisco’s Application-Oriented Networking (AON) product page is at
http://www.cisco.com/go/aon.
B)I must say Iam excited to conclude this series of "Things to watch out for Java Developer in 2008" by talking about Google Android ![]()
.With so much buzz and excitement around smartphones specially Apple iPhone,will Google be left behind to become a leader in that niche market as well.I must say I always keep an eye with whatever Google comes up with,be it the Google Maps,Google Web Toolkit,the Search Engine itself and Google Earth Sky.And AT&T is the last remaining major wireless carrier in the United States to not publicly endorse Google's Android initiative. Sprint,Nextel,Sybase,Motorola,Qualcomm,HTC and T-Mobile had both come out in favor of the platform when they joined the Open Handset Alliance, a multinational group with over 30 members dedicated to promoting Android, in November last year.And thats why developing applications for mobile devices(mobile computing) is something every Java Developer(me definitely) should also consider seriously now and adding technologies like Blackberry Java Development Environment,IBM J9 & Google Android to their career graph.I must say Iam completely bowled over by Google Android.
In comes Google Android,
the first complete,open and free mobile platform.
Android is the first truly open and comprehensive platform for mobile devices. It includes an operating system, user-interface and applications -- all of the software to run a mobile phone, but without the proprietary obstacles that have hindered mobile innovation.The Android platform is a software stack for mobile devices including an operating system, middleware and key applications. Developers can create applications for the platform using the Android SDK. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linux kernel.The features of Android are,
* Application framework enabling reuse and replacement of components
* Dalvik virtual machine optimized for mobile devices
* Integrated browser based on the open source WebKit engine
* Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
* SQLite for structured data storage
* Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
* GSM Telephony (hardware dependent)
* Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
* Camera, GPS, compass, and accelerometer (hardware dependent)
* Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
The architecture of Android SDK is,
To develop Android applications using the code and tools in the Android SDK, you need a suitable development computer and development environment, as described below.
Supported Operating Systems
* Windows XP or Vista
* Mac OS X 10.4.8 or later (x86 only)
* Linux (tested on Linux Ubuntu Dapper Drake)
Supported Development Environments
Eclipse IDE Eclipse 3.2, 3.3 (Europa)
Eclipse JDT plugin (included in most Eclipse IDE packages)
+ WST (optional, included in most Eclipse IDE packages)
JDK 5 or JDK 6 (JRE alone is not sufficient)
o Not compatible with Gnu Compiler for Java (gcj)
o Android Development Tools plugin (optional)
o Not compatible with Gnu Compiler for Java (gcj)
o Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
Suggested Reading
http://code.google.com/android/
Suggested Video Tutorial
Android Architecture-part 2
Android APIs
Android Demo
Thats all for now!
Speak up! Say whatever you have to say
Wednesday, January 9, 2008
Things to watch out for in 2008 for Java Developer - Part 2
In the first part of this series " Things to watch out for in 2008 for Java Developer-Part 1", I did mention about Scala,Groovy and Gant.And in continuation of that series,in this part let me discuss about other technologies ,which I think will take huge strides in J2EE application development,if not already.I assume the readers of this article did read the Part 1 article,though its not a primer for this part.
To start with,let me start with defining what scripting language is (thanks to Guillaume Laforge,project manager for Groovy and the initiator of Grails).
"Usually, scripting languages refer to languages which are interpreted, but not compiled. They are mostly used and live on the command-line, in shell environments, like bash. Those languages are often used to script some live applications, objects or components, to manipulate them programmatically, and potentially interactively.And scripting languages come in handy for prototyping spikes, for small to mid-sized projects where the expressivity matters more, or for integrating some customized logic to be interpreted or changed at runtime for bigger enterprise applications"
And I would like to start with Jython
Though it has been available as open-source from Sourceforge since 2000,what perplexes me is the lack of interest and usage of this software.I agree it has evolved from Python and not many Java J2EE n-tier enterprise applications tend to use it(I might be wrong,but I personally never come across any requirements which need Jython),I dont see it losing in race with JRuby or Groovy,though they are also one to watch out for,but given how easy it is to learn and on its roadmap(next release v2.5) this year(hopefully) has extensive support for JDK5.0 features like annotations,generics the buzz words now and almost all enterprises turning towards Java 5 (excluding some old beasts who never dare treading on with evolving world) I would definitely like to add this to my skills repertoire . And for the following reasons,Jython is an implementation of Python that has been seamlessly integrated with the Java platform. Python is a powerful object-oriented scripting language used primarily in UNIX environments.
Jython is extremely useful because it provides the productivity features of a mature
scripting language while running on a JVM. Unlike a Python program, a Jython
program can run in any environment that supports a JVM.And you would agree if you see the below excerpts,and I thank Weiqi Gao for his article here.Since Python (the language implemented by Jython) has a richer set of features than JavaScript, Jython provides more convenience for the exploratory Java programmer. Let's try out some examples in Jython:
* Java classes and packages can be imported using the Python import statement (Note the extra work Jython does for you, compared to Java):
>>> import java # Import the java 'module' so that we can use names therein
>>> java # This works now
>>> java.awt # Surprise, this works too
>>> from java.awt import * # Import all names from the java.awt 'module' into he current 'module'
>>> Frame # We can now refer to java.awt.Frame as simply Frame
*
>>> f = Frame("A Java Frame in Jython")
>>> b = Button("Hello")
>>> f.add(b); f.pack() JavaBeans style properties (defined by getter and setter methods) can be accessed directly:
*
>>> f.visible = 1 # In Python, 1 is true, 0 is false Java interfaces can be implemented with Python code:
*
>>> class MyActionListener (java.awt.event.ActionListener):
... def actionPerformed(self, event): # Note the extra self argument
... print("World")
>>> listener = MyActionListener()
>>> b.addActionListener(listener) Java classes can be extended with Python code, (however Python's multiple inheritance does not apply when Java classes are extended):
*
>>> class MyWindowListener (java.awt.event.WindowAdapter):
... def windowClosing(self, event):
... from sys import exit; exit() # Calling Python's sys.exit() to rather than Java's System.exit()
>>> adapter = MyWindowListener()
>>> f.addWindowListener(adapter)
Jython makes creating Java arrays easier through the jarray module:
>>> from jarray import array, zeros
>>> array([1,2,3], 'i')
array([1, 2, 3], int)
>>> from java.util import HashMap
>>> a = array([HashMap(), HashMap()], HashMap)
array([{}, {}], java.util.HashMap)
Jython goes one step further than Rhino in JavaBeans scripting. All properties and event listener methods can be assigned at object construction time using keyword arguments:
>>> f = Frame("A Java Frame in Jython", visible=1, windowClosing=exit)
This is roughly equivalent to the following Java code
Frame f = new Frame("A java Frame in Jython");
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
exit();
}
});
B)Next in line is other scripting language in Java,JRuby, though I didnt mention about it in my part 1 article,I would like write something about it,that way we can compare it with Jython as well here.
For the popularity,Ruby on Rails has gained so far,it comes as no surprise as to so much interest in JRuby.Ruby is a full-featured object-oriented language. But there are many significant differences compared to Java. Ruby is dynamically typed and runs in a source-code interpreter, and it conveniently supports metaprogramming as well as the procedural and functional paradigms. Java has static typing. You declare the type of each variable, and then, during compilation, you get an error message if you use a variable of the wrong type. Ruby, on the other hand, has dynamic typing: You don't declare types for variables or functions, and no type-check occurs until runtime, when you get an error if you call a method that doesn't exist. Even then, Ruby doesn't care about an object's class, just whether it has a method of the name used in the method call and JRuby is a Java implementation of the Ruby platform. Ruby
can run directly on mainstream operating systems with a C runtime, and is starting to run on .NET's CLR. When you program in JRuby you primarily use Ruby's libraries which are implemented in Java, and may also use Java's libraries at your discretion. If you stick to Ruby's libraries, or at least wrap any foreign elements, you can run Ruby
programs on the C, Java, or (in time) .NET runtimes. So you can use JRuby to both run Ruby programs on the JVM and as a language for scripting the JVM. The fact that JRuby is a Ruby platform on the JVM means that in JRuby you have two kinds of objects - JRuby objects and Java objects.There are times when you need to know whether you're dealing with a Java string or a JRuby string.
Some JRuby examples are , http://www.codecommit.com/blog/java/rapid-prototyping-with-jruby
Thanks to Martin Fowler
C)And I would like end Part 2 with Rake.
Rake is a software build tool similar to Ant.The tool is written in the Ruby programming language and the Rakefiles (equivalent of Makefiles in make) use Ruby syntax. It was originated by Jim Weirich.
Rake uses Ruby's anonymous function blocks to define various tasks, allowing the use of the Ruby syntax. There's a library of common tasks available, for example, functions to do common file-manipulation tasks and a library to remove compiled files (the "clean" task). Like Make, Rake can also synthesize tasks based on patterns (for example, automatically building a file compilation task based on filename patterns). Rake is now part of the standard library form Ruby version 1.9.
And go through this article by Martin Fowler for clear understanding about Rake.
http://martinfowler.com/articles/rake.html
Monday, January 7, 2008
Things to watch out for in 2008 for Java Developer- Part 1
Life of a seasoned Java Developer is never the same , I did hear this quote some time back "Life is like a Wave with Tides and currents"-I will add "Life of a Java Developer is like a Wave" not even everyday.He has to constantly keep an eye on emerging technologies ,which one to choose ,which one will further increase his caliber and which one will promptly for sure increase his contract tenure(if you are a consultant)and which one will keep him in the good eyes of his supervisor.Now that another year has started and with it comes different challenges to face for a Java Developer,so much development and so
many tools or frameworks are coming in J2EE environment,I choose to discuss and mention about the technologies which I think will take 2008 by storm and they are Scala,Groovy,Raven,Gant,Jython,Rake,Google Android not necessarily in that order.
The salient features of these technologies are :
1)Scala- Scala -http://www.scala-lang.org/ is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.
Scala is the successor of Funnel, a language based on join calculus.
Scala is object-oriented
Scala is a pure object-oriented language in the sense that every value is an object. Types and behavior of objects are described by classes and traits. Class abstractions are extended by subclassing and a flexible mixin-based composition mechanism as a clean replacement for multiple inheritance.
Scala is functional
Scala is also a functional language in the sense that every function is a value. Scala provides a lightweight syntax for defining anonymous functions, it supports higher-order functions, it allows functions to be nested, and supports currying. Scala's case classes and its built-in support for pattern matching model algebraic types used in many functional programming languages.
Furthermore, Scala's notion of pattern matching naturally extends to the processing of XML data with the help of right-ignoring sequence patterns. In this context, sequence comprehensions are useful for formulating queries. These features make Scala ideal for developing applications like web services (external link).
2)Groovy http://groovy.codehaus.org/
"Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing. If you are a developer, tester or script guru, you have to love Groovy."
Groovy...
* is an agile and dynamic language for the Java Virtual Machine
* builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
* makes modern programming features available to Java developers with almost-zero learning curve
* supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain
* makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL
* increases developer productivity by reducing scaffolding code when
developing web, GUI, database or console applications
* simplifies testing by supporting unit testing and mocking out-of-the-box
* seamlessly integrates with all existing Java objects and libraries
* compiles straight to Java bytecode so you can use it anywhere you can use Java
For further understanding, go through this article published in Java Lobby,it atleast gets you started on this language. http://www.javalobby.org/articles/groovy-intro1/
I tried to find out how different is this from Ruby,which is also Object oriented scripting language and then I came across some blogs/articles like this one by Jon Tirsén ,I must say I particularly liked this bit of info , "Groovy’s got a bunch of really nice Rubyesque features like closures, syntax for advanced data structures, inline strings and so on but it’s also very tightly integrated into the Java platform. You can compile a Groovy script directly into a .class file and that’s just going to be like any class in Java and vice versa you can reuse any Java class and library within Groovy"
3)Gant - http://gant.codehaus.org/
Gant is a build tool for scripting Ant tasks using Groovy instead of XML to specify the build logic. A Gant build specification is a Groovy script and so can bring all the power of Groovy to bear directly, something not possible with Ant scripts. Whilst it might be seen as a competitor to Ant, Gant uses Ant tasks for many of the actions, so Gant is really an alternative way of doing builds using Ant, but using a programming language rather than XML to specify the build rules.
Saturday, January 5, 2008
Business Process Management - Things to watch out for in 2008
Business Process Management
"Comparison between different BPM products and choose one which suits best to your enterprise needs"
First I would like to start describing the core meaning what BPM stands for and what makes it one of the things to watch out for in enterprise applications.
Business Process Management (BPM) has become one of the most important enterprise software market segments as evidenced by recent industry analyst reports, as well as a growing number of companies claiming to offer BPM software. Like the rush by a broad range of software vendors to re-brand their products as ‘CRM solutions’ when the acronym first came on the scene, the same has quickly occurred with BPM and, as was the case with CRM, the products offered by the vendors vary dramatically in capability and functionality.
What is a Business Process Management platform?
First let’s define the core element, a business process. A business process is an aggregation of operations performed by people and software systems containing the information used in the process, along with the applicable business rules.
Execution of Business Processes
The execution of a business process achieves a business objective. The people and systems may be inside the boundaries of a company, but often times are in multiple enterprises needing to collaborate to achieve their business objectives. These processes also include business rules that may be documented policies and procedures, as well as the undocumented ‘how we really do things’ rules that exist in most enterprises.
A comprehensive Business Process Management platform provides an organization with the ability to collectively define their business processes, deploy those processes as applications accessible via the Web that are integrated with their existing software systems, and then provide managers with the visibility to monitor, analyze, control and improve the execution of those processes in real time. To be a comprehensive BPM platform a system must not only automate processes, it must:
* Integrate with existing operational systems such as ERP and databases
* Integrate business processes with those of a company’s suppliers and partners
* Incorporate the business rules that guide a business
* Provide managers with the visibility into those automated processes
to monitor operations in real time
* Offer managers the ability to deal with exceptions when they occur by changing business rules or entire processes to respond to business conditions in real time
BPM Versus EAI
Many products on the market today purporting to be Business Process Management systems provide only basic process automation or workflow capabilities that route tasks between systems or people. There is a great deal more involved in critical business processes. And there is a significant gap in the capabilities of a basic EAI or workflow system
If you were to consider an enterprise as an interconnected set of layers with the very top being the business strategy layer and the bottom the IT infrastructure layer you would begin to see how very different BPM is from EAI, Application Server and Workflow systems. The terms that make up the acronyms BPM, Business, Process and Management and EAI Enterprise Application Integration give a good indication for where they fit into the enterprise ‘stack’. BPM provides an organization with the ability to define at a business strategy level its processes, then automate those processes in a controlled application to execute on that strategy and finally to provide business managers with the visibility to monitor and analyze the operation of those processes to improve their operation and to resolve business problems when they occur. EAI, on the other hand is a ‘middleware’ technology that provides the ‘plumbing’ to route data between applications (application integration). EAI operates at the technology layer of a business and is a set of programming tools used by an IT organization to reduce the amount of custom software that would otherwise need to be written. BPM addresses business issues and EAI addresses IT issues. As the top layer in the stack, BPM serves as the critical business productivity layer linked to the software systems, applications, middleware, databases, messaging technologies and the IT resources of large scaled business enterprises to execute those processes. Some applications such as ERP systems incorporate the middleware and databases in one layer. Others, like new Supply Chain Management (SCM) products, exist at the application layer and run on top of application servers and EAI/B2Bi services.
It is very important for a BPM platform to allow processes that span multiple enterprises and use multiple existing software systems, to be defined quickly and to be deployed rapidly. Otherwise, a BPM platform provides little value to no value as a business automation and management platform. Business is in a constant state of change, driven by internal and external activities and a business process management system must be able to respond to these changes.
What of Overlapping Systems?
When looking at product offerings claiming to offer BPM capabilities, it is important to recognize that these products were developed to address specific problems, such as routing documents and tasks between office workers, in the case of Workflow, and coordinating the flow of information between legacy systems, in the case of EAI technology.
Workflow Systems
Basic Workflow products overlap with BPM systems as they address one element of BPM, providing for the definition and flow of operations performed by people. Workflow systems:
* Are designed for groupware and human collaboration applications.
* Do not integrate operations to be performed by software systems.
* Typically are based on client-server architectures
(rather than Web-based thin client architectures)
* Limit operations to those performed inside the enterprise.
* Do not allow business rules to be aggregated with business operations.
As Workflow companies move to extend their systems to address the above deficiencies, it invariably means grafting new technologies on old architectures or entirely redeveloping their products, both expensive and problematic processes.
Existing workflow products, in addition to having client-server architectures, rather than Web architecture, have been implemented in C or at best in C++ languages rather than in Java. They represent processes in proprietary notations rather than in XML. They do not have rule and integration engines, which are essential components of a top down business productivity BPM platform.
EAI/B2Bi Systems
Existing EAI/B2Bi products overlap with BPM systems as they provide for the flow of operations performed by systems to be defined and executed. This is in effect facilitating the flow of information between integrated applications. EAI/B2Bi systems:
* Have been designed to integrate applications that execute related
business transactions
* Typically do not allow operations to be performed by people
* Are technical, low-level systems requiring extensive IT expertise to deploy
* Are tied to an integration server and cannot be used without it
* Provide no business management capability, as their purpose is automation.
As with workflow systems, EAI/B2Bi companies are also looking to extend their systems to address the above deficiencies with the same negative impact. Adding Workflow to an EAI/B2Bi system facilitates information routing process, but does nothing to address the underlying business process and business management problems enterprises face. It is important to recognize that a process to an EAI system is typically measured in sub-seconds and their architectures are designed to meet that goal. Business processes when viewed from the business level, often take days if not months to complete (product life cycle) involving hundreds of different steps and exceptions, necessitating a systems architecture designed to manage the workload.
Different BPM Solutions
Here I would like to present the pros and cons of different BPM solutions available in market now.
A) BEA Aqualogic BPM -
I did get an opportunity to use this product while working in one of my projects and what I like most about this product coming from BEA it does seamlessly integrates with your BEA development environment and the support and articles given by BEA extremely useful while implementing your application.And you do need BPM Designer and BPM studio to complete the product stack you need to develop business processes.
The main features of Aqualogic BPM are ,
BEA AquaLogic BPM directly leverages this infrastructure by enabling the orchestration of services deployed in the service network, and by allowing people to interact with those services through managed work processes. The benefits of SOA become very clear to business users when they can design work processes that directly interact with business services provided by the underlying service network. BEA AquaLogic BPM also integrates directly with BEA AquaLogic User Interaction, a portal and Web experience framework, provide a richer user experience for process users. This integration also delivers a powerful combination of Business Process Management and human collaboration tools that supports the wider balance of structured and unstructured work patterns.
BEA AquaLogic BPM is also well-suited for deployments that do not yet involve a service infrastructure. Enterprises often enjoy the benefits of Business Process Management without first service-enabling their existing systems simply by using a common system for modeling and documenting work processes and activities, and also by using the underlying system connectivity capabilities within the product. BEA AquaLogic BPM supports non-SOA environments using powerful introspection technology that makes it easy to connect processes to a wide variety of proprietary IT systems, including IBM, TIBCO, Oracle and SAP, using simple wizard-style interfaces.
BEA AquaLogic® BPM Designer is the business analyst's design environment. It enables the creation of any type of process by simply dragging and dropping process elements onto swim-lanes.
BEA AquaLogic BPM Studio supports multiple programming languages using a "skin" approach. The developer can seamlessly switch between .NET and Java at any time for both existing and new code. BEA AquaLogic BPM Studio provides a unique wizard driven tool to connect to external systems. The tool supports a variety of interface standards, including Java, .NET, EJB, JNDI, Web Service, XML, CORBA, COM, SQL, UDDIv3 and more. Finally, developers can easily assemble the user interfaces required for process participants. No Web design or coding is necessary. BEA AquaLogic BPM Studio automatically generates the necessary Web components based on the interaction and message formats specified in the process
B)IBM Websphere BPM Suite
IBM's new BPM suite based on Websphere Business Modeler,Business Monitor and Process Server Version 6 brings all of these functional elements together in a common service-oriented framework.The architecture provides a common orchestration engine,common data respresentation,common invocation model and common design environment for all aspects of business integration solutions.
Websphere Process Server and ita associated design tools are aimed broadly at SOA developers building composite applications on Websphere.
The Websphere BPM suite has four primary components :
Websphere Business Modeler v6 , provides analytical modeling of process flow, resources,costs,data and performance management,simulation of process scenarios and Business Measures Editor , which defines key performance indicators.
Websphere Integration Developer v6 provides executable process modeling through service-oriented assembly. It imports BPEL and business objects from Websphere Business Modeler and deploys executable models to the Process Server runtime environment.
Websphere Process Server it is layered on WAS and its SOA core services include Service Component Architecture ,business objects and the Common Event Infrastructure used for process monitoring.In BPMS solutions, Process Server provides the BPEL orchestration engine,business rule engine and component execution environment as well as Websphere ESB and last in the product hierarchy is Websphere Business Monitor is the performance management runtime component.Using metrics defined in modeler ,both real-time and historical analytics can be displayed in dashboards and charts.Websphere Business Monitor runs as Portlets in IBM Websphere Portal.
C) Jboss JBPM
I used this in one of my most recent projects and I must say, this is the most easy to use BPM product,though a lot more support and tutorials would have been useful for SOA developers.I did used it to create different process definitions and business process workflows as well as a process definition which initiates a Timer in background for a running batch job process and intimates the supervisor and developer responsible for that business process execution.
JBoss jBPM provides a process-oriented programming model (jPDL) that blends the best of both Java and declarative programming techniques.
JBoss jBPM, like all JBoss Enterprise Frameworks, is modular. It runs with JBoss Enterprise Middleware or any other Java EE middleware platform and plus its Open Source and if one reads the JIRA issues associated with this solution,you may get to see the progress made by jbpm everyday.
Watch here a demo of Jboss JBPM
D)Other BPMS products worth having a look at,
Intalio ,Open source and Savvion and here you see the demo of this product,Savvion
And I do believe expertise in either of these BPM solutions, will further enhance a J2EE Developer caliber and ofcourse gets you a challenging assignment to work on and your profile will be in demand.
Friday, January 4, 2008
Are you an expert in UI/Middletier/Backend?
Though it has been nearly 9 years for me in Java and J2EE application development and having played diverse roles like Jr Java Programmer,Senior Developer,Team Lead & Architect, I often comes across this question posed to me and as well as my peers,whom I have worked for all these years,hmmm it goes like "Are you an expert in UI or Presentation Tier, Middle Tier or Backend"?
What makes me get puzzled by this is, posing this sort of question is like asking someone like "Does your car have 2 wheels , 3 wheels or 4 wheels"? What I mean to say is, just like a Car needs 4 wheels to run ,a seasoned Java Developer should be having hands on knowledge on all the areas ...And he should know the application he is working on.What you are developing on the UI, which middletier components/server side components , the web components are talking to and how does a simple button click affects your data....blah blah.
My opinion is this question itself absurd and those who answer it,they are either happy driving in a car with single wheel or two wheels......
Saturday, May 19, 2007
Unit Testing with Mock Objects
Unit Testing with Mock Objects is catching up like a wild fire in J2EE Enterprise applications..It does save a lot of development time and increases your productivity....The following link (borrowed) ofcourse from IBM will definitely help anyone who is willing to seek knowledge in Mock Objects .....
Long live Java!!
http://www-128.ibm.com/developerworks/library/j-mocktest.html










digg
reddit
del.icio.us
