Wednesday 26 March 2014

What is Kerberos ?

A few days ago in our project we had a scenario where the reports could not do user authentication.And at last it came down to Kerberos.
Let me try to explain the scenario :
The reports needed to do some encryption/decryption using a encryption/decryption  key.
Now the key was available in another server ,other than that of the reporting server and the DB server.
So the architecture had three servers - 
  1. Server with key.
  2. Server with reporting service installed.
  3. Server with the DB installed.
So in such architecture ,in order to implement the single sign on technology ,the user authentication needed to flow from one server to another .

Note :Single sign-on (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in once and gains access to all systems without being prompted to log in again at each of them. Conversely, single sign-off is the property whereby a single action of signing out terminates access to multiple software systems.(Wikipedia)

Kerberos enables this authentication flow.

Note :Kerberos /ˈkɛərbərəs/ is a computer network authentication protocol which works on the basis of 'tickets' to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.(Wikipedia)

Our requirement was - The windows user id to be passed from one server to another after the user has initially logged onto one ,using his windows user id.He should not have to authenticate himself at each layer.And for us ,this was not happening.Logged into one server ,authentication was failing in another server.On further investigation we found our Kerberos to be not installed properly.So if you face similar issue check your Kerberos installation first.

Friday 21 March 2014

Future Trends in IT

A company’s success in the future is determined by the strategy that it adopts; the strategy here is based on both the current market situation and foreseeing the future market trends. The secret lies in understanding the next trend or finding better ways to do things. Like other areas, in the IT sector too there are certain changes we can foresee. 
A lot of preparation goes in so that the company can adapt to the changing situations. The trends that we can expect to see in future are

1. Component based model

In the years to come software development will become more component model based. Hardly any company will do the coding right from scratch. Many small and mid-sized companies will emerge, which will develop components for different functionalities. Bigger companies will integrate these components and customize it to suit the client needs. The challenge for such big companies lies in integrating components developed by various vendors and finally making it work as one single system.

2. More maintenance projects

The software companies in both the service as well as product industry are expected to get more maintenance, integration and migration projects. 
With all the development work that has happened in the last decade, maintenance projects will be required to keep them running and changing them along with changing client business requirements.
Integration projects will be executed to merge all the systems working currently as disparate systems. As and when merger and acquisition of companies happen, integration projects will be initiated to merge the companies’ systems.
As ever in order to bring in new features, the software vendors will come up with newer versions of their products. The companies using those software will then need to initiate software upgrade projects and in cases where in a tool switch is being done, migration projects will be executed.

3Reusability of codes

Object oriented programming and code reusability will gain prominence more than ever. Well defined classes and structures will be created such that the implementation of the functionality can be customized based on different user needs. Usage of this reusable code will definitely shorten development timelines.

4. Virtualization

Virtualization is giving the user virtual access to any system rather than actual one. It may be operating system, storage device, network resource etc.
In this new model the client will not have to maintain the resources neither will he have to invest big money to buy the resources. He will have to pay as and when he uses it.
Thus virtualization will improve scalability and will make availability of resources cheaper.

5. Collaboration Technology

Collaborative software is software which helps people with common goals achieve their objectives.
Email, chat can be said as examples of collaborative technology.
In future as team members will be more geographically distributed, the usage of collaborative technology will become more important.

6. Security

With increasing number of online presence, security threats due to virus, Trojan, spam, hackers etc. will also increase drastically.
Organizations will need to increase their budget for the security of their networks, servers, data recognition and detection etc.
And as people do more online money transactions and provide their credit card, bank account, personal identity information online, they will as well need to increase online security by installing anti-virus, firewall etc.
With such a high demand and need, antivirus companies will grow bigger and make more money. But as with any business with more money will come more companies and more competition.
The new types of threats that will come to picture are
1. Hacking into car computers.
2. Government data attack.
3. Attack on personal accounts through network sites.

7. SAAS

With cloud architecture getting prominence, SAAS or Software as a Service will become more popular in the next decade.
As with SAAS ‘pay per use’ or ‘Pay as you go’ mode of payment, it will become easier for companies to subscribe to softwares without having to buy them or maintain them.


8. Agile and waterfall

Most of the product companies nowadays have adopted agile methodology of working. However, with service companies, a complete agile methodology still may not work. But with the current context it would be more appropriate to implement a combination of Agile and waterfall rather than pure waterfall model. 
With continuous change requests and changing requirement scope, it is now very difficult to implement a pure waterfall model. But for maintenance purpose, a thorough documentation is also required at each stage of the lifecycle .And it’s always not possible to have a release every one/two weeks. So following complete agile methodology is also not possible in most cases.

9. Direct to customers

“Direct to Customer” model as started by Michael Dell is more applicable for product and manufacturing companies rather than service companies. This model has given Dell company immense success .In this model, product is manufactured and inventory is maintained on the basis of client demand rather than gut feeling.

10. New employee model

Service companies will start to have more contractual employees. In this model the hires will be on temporary basis depending on project requirement and skill set. Though in India the major percentage will still be permanent employees, the percentage of contractors will certainly increase.

11. Gaming industry

The gaming industry will get even bigger. With hardware price coming down, gaming software will become higher defined. More gaming consoles will start to have wireless controller used as a handheld pointing device that detects movement in three dimensions.

12. BI Industry

There are certain changes that we can expect to see in the Business Intelligence.
1. Information will be required to be provided to the managers, without the managers having any prior knowledge of requirement. Currently with the static reports information is focused to certain KPIs which the managers have provided as requirements. But in future BI will become more exploratory in nature. The managers will discover trends by analyzing their own data.
2. Business Intelligence will become more prescriptive in nature, rather than reportive.It will tell the user what to do next rather than what has happened.
3. In merger of two systems data won’t be physically moved from one place to another, what we call ETL today. With current architecture data is moved from one system to another in a common place to merge the two systems. But with the future architecture a semantic layer will be provided which will give virtual access to all the systems, and it will appear to the user as one integrated system rather than disparate systems.

13. Wireless and hacking

With the advent of smart phones and gadgets and increasing urge of people to stay connected, more number of people will come under wireless connection and more number of people will get Wi-Fi connected. With the growth of portable technology, our cells will eventually become portable internet devices. And as we will connect to the shared Wi-Fi services, our gadgets will become the entry point for hacking attempts.

14. Data Center leasing

There will be the growth of this new market of data center real estate. They will actually lease space for data centers.

15. End of recession

Eventually the coming years will see the end of recession. The IT salary and bonuses will again be on the rise. Although the cost cutting will continue to be the order of the day. The companies will not forget the lesson learned during the economic downturn.


The IT companies will have to come up with new ideas and models to adapt it to the upcoming trends.

BIaaS plus Cloud Computing

In the modern market scenario, companies need to come up with new business models and strategies to keep themselves competitive. This paper talks about such an architecture which the companies can introduce to capture an untapped market.

Business Intelligence as a service is becoming a major force in DW&BI industry. As and when with time having a DW and BI for a company will become very important. Not only for big companies but small and midsized companies will also look to have a DW and BI implementation. Taking that important managerial decision won’t be limited to the big companies but managers from mid and small sized company will also want to have that chart, that graph or that information in front of them before they take that important decision. Emergence of Cloud has made BIaaS more economical and scalable than ever. So if we can combine them successfully and implement it we can capture a market we never thought of.
The scenario is quite similar to what happened to the ERP industry 2 to 3 years back.ERP did not remain confine to the big players. The small companies needed it. And the Product companies in the ERP domain realized that.

Case of Ramco

 Ramco came up with Ramco e.Applications.Which is meant for large companies. It costs more. It takes longer to implement. And it follows a typical ERP implementation process. We have to be in the client premise to implement it. And an implementation ideally takes 3 months, in case everything goes as planned. But in software industry rarely things go as planned. So in most cases it takes approximately 5-6 months.
Ramco then came up with Ramco OnDemand ERP.
In Wikipedia it is described as
ERP Software as a Service (SaaS) is a model of delivering software applications to customers over the internet. Ramco OnDemand ERP solution enables to integrate and streamline the business process into one solution, which gives the customer total visibility and control of operations. SaaS takes away the huge capital expenditure involved in an on-premise model. The ERP users can obtain the optimal usage of an ERP suite without buying the software. It is a subscription based model and the solution can be scaled up to accommodate multiple locations, currencies and business units. “Ramco OnDemand ERP has all the features required to run an organization; if customization is required, it is feasible as the requisite tools are available for customization”. The customers find the application to be user friendly, more responsive and efficient enough to coordinate & integrate the business processes.
It is meant for small and midsized companies.
Ramco OnDemand ERP is mainly for the mid sized and small sized companies. For it the company does not have to invest a lump sum of money on the infrastructure or manpower to get their ERP going.
With typical ERP solutions in most cases millions of dollar are spend before actually getting any service out of it.
So whatever architectures is followed, be it
1. SAAS (Software as a Service)
2. IAAS (Infrastructure as a service).
3. PAAS (Platform as a Service)
4. BIAAS (Business Intelligence as a Service)
Or
5. ERPAAS (ERP as a Service)
The ultimate objectives are same
1. Client does not have to invest too much in the beginning.
2. Provide them with a scalable architecture.
3. Clients pay for what they use.

Case of SAP

SAP’s main product in the ERP industry is SAP R/3.
As given in the Wikipedia
History of SAP R/3
The first version of SAP's flagship enterprise software was a financial Accounting system named R/1 called as YSR. This was replaced by R/2 at the end of the 1970s. SAP R/2 was in a mainframe based business application software suite that was very successful in the 1980s and early 1990s. It was particularly popular with large multinational European companies who required soft-real-time business applications, with multi-currency and multi-language capabilities built in. With the advent of distributed client–server computing SAP AG brought out a client–server version of the software called SAP R/3 (The "R" was for "Real-time data processing" and 3 was for 3-tier). This new architecture is compatible with multiple platforms and operating systems, such as Microsoft Windows or UNIX. This opened up SAP to a whole new customer base.
SAP R/3 was officially launched on 6 July 1992. It was renamed SAP ERP and later again renamed ECC (ERP Central Component). SAP came to dominate the large business applications market over the next 10 years. SAP ECC 5.0 ERP is the successor of SAP R/3 4.70. The newest version of the suite is MySAP 2007 or SAP ECC 7.0.
So it was meant for large companies. It was very difficult for mid and small sized companies to afford it.
So SAP came up with SAP Business One.
In Wikipedia Business One is described as – 
SAP Business One is an integrated enterprise resource planning (ERP) system written and distributed by SAP AG based in WalldorfGermany. It caters for business software requirements of small and medium sized enterprises (SMEs).
SAP in its website describes Business One as 
A SINGLE INTEGRATED BUSINESS MANAGEMENT APPLICATION FOR SMALL BUSINESSES
The SAP Business One application integrates all core business functions across your entire company – including financials, sales, customer relationship management, inventory, and operations. Unlike many other small business solutions on the market today, SAP Business One is a single application, eliminating the need for separate installations and complex integration of multiple modules.
So the main emphasis is to reach out to that untapped market.

BIaaS

The main concept behind Business Intelligence as a service is that the Service provider company hosts the data for the client, works on it and makes it available in the required format.
The information is accessed by the client remotely from his premise to take the managerial decisions.
The client does not have to worry about buying any initial hardware nor any maintainanace.He just pays for the services as and when he uses it.
But this again depends on how much the client is comfortable with keeping its data with the Service Provider company. Here the service provider company along with Hardware also provides the ETL, Reporting and other BI related services. The user only requires a thin client from which to access these services.

Cloud

Cloud provides the user the required hardware and network resource without the user having to bear the initial expense. It also provides the user the benefit of elasticity, where resource requirement can be expanded and decreased as and when required.

Cloud + BIaaS

Thus the infrastructure provided by the cloud can be used to host the client’s data .The service provider company has to work on top of the cloud architecture and provide the services. It doesn’t have to maintain the hardware resources since it gets taken care by the cloud.
But then again it depends on how much the client is comfortable with hosting its data with a third party cloud provider. But looking at how much the cloud providing companies have matured and the security level implemented, data security should not be a concern.

Microsoft

Windows Azure is Microsoft’s cloud platform.
In Wikipedia it’s described as
Microsoft's Windows Azure Platform is a cloud platform offering that "provides a wide range of Internet services that can be consumed from either on-premises environments or the Internet" (though the platform itself is not made available for on-premises deployments). It is Microsoft's first step into cloud computing following the launch of the Microsoft Online Services offering. In short, it's Microsoft infrastructure as a service.
Azure Services Platform is an application platform in the cloud that allows applications to be hosted and run at Microsoft datacenters. It provides a cloud operating system called Windows Azure that serves as a runtime for the applications and provides a set of services that allows development, management and hosting of applications off-premises. All Azure Services and applications built using them run on top of Windows Azure.
Now Microsoft has come up with a service where they will shift its data canters right in client’s backyard. Thus the data never goes out of the client’s premise. And the data canters are self healing. No maintenance is required.
And it maintains the same architecture that any private cloud does; only the data centre is at the client’s premise rather than that of Microsoft’s or service provider’s office. And the service companies can create its services on top of the cloud without ever having to visit the client’s premise, since it is hosted on cloud and can be accessed online.

Using them together to capture a new market

So with this architecture
1. The data never goes out of the Client’s premise.
2. The client gets all the facility of a private cloud.
3. The service company creates its services on top of the cloud, working remotely from its place.
4. The client pays as they use it.
5. The service company does not have to worry about hardware maintenance.

In the coming years a new market for Business Intelligence will emerge. And this market will mostly be comprised of small and mid level enterprises (SMEs). With the current business model and architecture we won’t be able to succeed in this market. So to capture this emerging market, companies will have to come up with new models and architectures. BIaaS + Cloud being one of them.

Sunday 16 March 2014

Artificial Intelligence - Man vs Machine

Nowadays it can be seen that in almost all sectors worldwide machines or rather computers have found their own place. It is being seen that our everyday life is much less complicated and less hectic due to the proper and wide usage of these human-made devices. But the question that arises then is that can humans be replaced by computers? Undoubtedly these had been of great help over the ages in every aspect making the world more systematic but the question still remains about the durability of the idea of the replacement of human minds by machines.

The above question may be answered with the help of Artificial Intelligence and some other contextual points discussed below.


Now first comes the question what is "Artificial Intelligence". The answer lies within the phrase        only. Artificial Intelligence is the branch of computer science concerned with making computers behave like human beings. The term was coined in 1956 by John McCarthy at the Massachusetts Institute of Technology. We will discuss its contribution in the field of technological advancement in details in this paper later but first lets go through some other points, which will infact help us to understand better the immense power of artificial intelligence.

Process defining:
If everything can be defined through a definite process and everyone is clear about their role or significance within a system then everything or rather everybody can be replaced i.e, whatever be the input if the process is defined properly output will be the same irrespective of the fact that it is done by human beings or machines.

But what if one of the steps needs to be changed in future. One may think that it will need the help of a human mind i.e, if the inputs are not in the defined pattern the machines will fail to yield the desired output as machines are not designed to think whereas human minds are. Then the question arises that is it really so!

These days the machines are designed so that they are becoming quite intelligent. After all human brain is also nothing but a system connected by a chain of nerves and these nerves basically controls us or operates us. So then can machines not work in that way? If they can be automated properly then the machines may also can do all possible things, they can be made to think and then can execute accordingly.
   
The Power of Thinking:
It is said that human beings are blessed with the power of thinking which is why something new is invented every now and then. But if human minds are bound within a definite process of thinking, just to enable the machines to take on, then everything being confined within a particular chain of process, nothing new can be thought of or invented.

Japan is very systematic in respect of process. They are so bound by processes that they have just stopped thinking and innovation has just paused for them. It is a very serious issue and Japan has led the world to rethink the model of automating everything and giving the leash to the machines. Will it be such a good idea?  

Creativity and Biasness:
Human brain has an edge over the computer. It has an access to creativity. It can work without full input and making logical assumptions about problems but the computer is limited by its programming thus being unable to create something new out of limited data available in hands. But the power of assumptions may lead to a whole new aspect of human biasness.

Human minds can never be completely unbiased and whenever its assuming something there has to be a definite biasness in the thinking process and thus the result achieved can be trimmed but the machines being based purely on some pre-defined programming are completely free of any biasness of any kind. But does this biasness overpower the beauty of creativity!

Advancement of Technology:
Technology is advancing so fast in today's world that with few more steps in future its expansion may have a great effect as to whether we have a job or employment. The robots or the machines that has been helping us immensely over the years in our day-to-day lives,then can it not be designed to do our entire job for us and thus replacing human beings.


Artificial Intelligence:
Last but not the least comes the point of artificial intelligence which proves the validity of the notion "Advancement of Technology" to its full extent.

Artificial Intelligence includes the process of programming computers to play games,to understand natural (human) language, to make decisions in real-life scenarios,to see and hear and react to other sensory stimuli (robotics), and neural networking (simulating intelligence by attempting to produce the types of physical connection that occur in human brains).

Human beings are intelligent with respect to the notion that they can recognize and respond to the patterns and can adapt to the changes and thus they can make the necessary changes accordingly to make this world a better habitat. But then the question comes that are the machines not intelligent enough to recognize the patterns?

There are some evidences that machines are becoming smarter at specific tasks.In 1997 IBM's Deep Blue Computer defeated World Chess Champion Gary Kasparov in a game of chess and in 2011 IBM's Watson Computer won the US game show Jeopardy defeating two of the game's human grand champions. But do these instances imply that the computers are able to adapt to unfamiliar situations. Well that's still need to be answered.

In automobile industry The cycle of manufacturing ana automobile has more or less remained the same for decades.There the process is well defined and has remained stable. So in this particular industry automation till 70% of the work is being possible through robotics. But in software industry the cycle is getting redefined continuously. Few years back Waterfall model was the most practiced technique whereas now Agile is the new trend. So for such industries where there is continuous innovation of new models it remains a question how much of it can be automated.

The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. The life cycle defines a methodology for improving the quality of software and the overall development process. SDLC consists of planning i.e, requirement gathering from the client, implementation of the information gathered through coding, testing for defects or bugs created in the software, documentation of the steps in the project for future reference, deployment and maintenance for future reference. So, if all these procedures starting from the requirement imputing to maintenance can be defined under definite process then can a computer do software development without human intervention?

Our software industry has a long path ahead when compared to some traditional manufacturing process. But with new tools and new platforms emerging every now and then it can be expected very soon that the artificial intelligence may reach its bloom and the software gets developed without any kind of human intervention.