Latest Post

BankON™ Featured in Bank Technology News

Posted on: 20-12-2010 by Phil Hodsdon | In : BFS and Insurance, BankOn


As a result of this year’s launch of BankON, Sierra Atlantic was recently named one of the Top 10 Technology Companies to watch by Bank Technology News.   Sierra Atlantic is among the top 10 companies featured on the cover page of the December 2010 issue of the magazine. John Adams of Bank Technology News refers to...

Read More

Erlang experiments: The results are in

Posted on : 09-12-2010 | By : Chaitanya Munjuluri | In : Game Development, Outsourced Product Development

Tags:

0

As part of an initiative to start looking at various technologies and methodologies that will make revolutionise video game development, we were looking at various programming languages that would help scalability in servers. Multi threaded C/C++ code, design patterns, libraries, frameworks, and finally programming languages themselves fall under this division.

Subsequent to my earlier blog post on Erlang (refer: http://blogs.sierraatlantic.com/2010/10/erlang-and-experiments-with-scalable-servers/) we whipped up a quick server to test its scalability. Srini (a fresh graduate from University of Hyd) and Vijayender worked on the server side of the game while Chaitanya (not me) worked on writing a client using the Blender API.

It was in many ways an experiment on the productivity of the programmers. Vijayender, with his vast experience, was mostly involved in design while Srini and Chaitanya were responsible for actual implementation.  Keep in mind that Chaitanya and Srini have each just about 2 months of experience and I was already demanding them to write multi threaded code. However the results definitely surprised me.

We planned on making a very simple server that would cater to multiple incoming connections. The overall idea is that we would use one thread to run the networking related code, one thread to do the event management and one thread to perform collisions and the like. The reason for this was straightforward since this is a very simple form of threading (using the producer consumer pattern).

So how long did it take for us the finish this application? 2 months. Yes, that’s right. Just two months with a brand new pair of hands who have no experience writing multi threaded code.  The number of bugs that were reported? Less than 5 and all of them were deviations from the specification. None were technology related bugs.

The following graph depicts the throughput. X-Axis shows the number of clients while the Y-Axis shows the average time it took for a single update (in milliseconds)

The point to notice here is not how long each update took to perform. It is how the server scales automatically when we throw more cores at it. The performance is bound to improve if we switch all of the collision and mathematical calculations to a C/C++ interop (maybe even CUDA/OpenCL… hmmm).

Notice how the 800 clients an 8 core processor gives more than 30 fps consistent. Every time we figured an increased load on the server, all we had to do was toss more cores at it and the performance pretty much improved linearly.

Having worked extensively on multi-threaded code I have come to believe that the future lies in languages that are designed with threading in mind. Multi-core architectures are not going anytime soon and this is exactly why writing code that scales well is of extreme importance. I believe that it is better to toss more hardware at a problem than tossing programmers and Erlang seems to be a good choice.

Notes:

Here is a list of things that are left:

  • Mathematics interop in C/C++
  • Checking the numbers with Hipe VM
  • Checking the numbers on multiple operating systems
  • Hopefully try it out on the cloud ;)
  • Persistent store (database integration)

Here is the current setup:

  • Windows 7
  • Intel i7 CPU (8 hardware threads)
  • 6 GB RAM (although we were never limited by the RAM)
  • Erlang R14B 5.8.11

IFRS – Insights – ‘Segment’ Your Mind Before Reporting

Posted on : 30-11-2010 | By : Anantha Krishnan | In : BFS and Insurance, Company, Enterprise Applications & Services, Industries, Oracle Economy of Products, Oracle e-Business Suite, Services

Tags: , , , , , , , , , , , ,

0

Yes, I am back again this time keeping up my promise for a deep dive (shall I say neck deep!) into specific areas for IFRS transition. Just thought it would perhaps interest the readers (if any!) if some ‘hot’ topics laced with factors behind formulating  policies falling in ‘Accounting’ / ‘Information Systems’ (our narrow interest is Enterprise Applications!) are provided.

With the above background, let me get into ‘Segmental Reporting’ – a very common area (even without IFRS!). At the outset, it is good to note that IAS 14 deals with this subject and  AS17 – is the corresponding Indian Accounting Standard already  in force for certain companies.  Also, much to the relief of  ‘Accountants’ broadly there are no major variances between IAS14 and AS17 –  On the lighter side, feel – if one reads through the accounting standards – hardly 10% will be understood in the first few readings! (10 times taxing to first understand and xx??[God knows how many?] Times for implementation!!). However at the end, there is a larger intent to analyze financials to proactively assess if the health or intended moves of an enterprise are in the right direction adding investor value.

Now here is what IAS14 mandates – Looks pretty simple, till one has to implement!

  • An entity reports information for ‘Business Segments’ and for ‘Geographical Segments’, indicating the types of products and services included in each reported business segment and the composition of each reported geographical segment. (One of these segments will be ‘Primary’ and the other ‘Secondary’)

  • A set of reporting requirements – listed below for ‘Primary’ / ‘Secondary’ Segments so identified.
Primary Segment Secondary Segment
Revenue - separately disclosing sales to External Customers and Inter-Segment Revenue. The  basis of inter-segment pricing is also disclosed Revenue – separately disclosing sales to External Customers and Inter-Segment Revenue.
Profit or Loss – (Before Interest and Taxes) from continuing operations and discontinued operations separately. — Not Applicable –
Carrying amount of segment Assets Carrying amount of segment Assets
Segment Liabilities. — Not Applicable –
Cost incurred in the period to acquire property, plant and equipment, and intangibles. Cost incurred in the period to acquire property, plant and equipment, and intangibles.
Depreciation and amortization charges, and other significant non-cash expenses — Not Applicable –
Aggregate share of the profit or loss of associates, joint ventures, or other investments — Not Applicable –

Already panting? Ok! Understand – here are a few breathers:

  • Standard (mercifully!) applies only to entities whose shares are listed in Stock Exchange(s) or which are in the process of issuing the same for eventual listing:
  • Don’t be overjoyed!! – Indian Accounting Standard is much more extensive in its coverage as it prescribes some additional class of companies or criteria for coverage (Ex. Banks and Insurance Companies, Entities having a Turnover of more than Rs. 50 Crores – (Approx. $10 Million). Borrowings in excess of Rs. 10 Crores (Approx. $2 Million), Holding / Subsidiary of any of the companies covered by AS17.
  • Disclosure requirements arise only when the segment revenues earned from external customers are in excess of the prescribed threshold limit of 10% of the Total Revenue (Both internal and external).  – A minimum of 75% of the total revenue should be covered by segment reporting failing which additional segmental classification needs to be included until this limit is met!

I can already hear a few loud voices – how to identify ‘Business Segments’ or ‘Geographical Segment’ –

  • IAS14 in my view lacks clarity [“The source and nature of the entity’s risks and rates of return determine whether the primary reporting format is business segments or geographical segments. This is usually identified by the entity’s internal organizational and management structure and its system of internal financial reporting to senior management.]
  • AS17  provides some more guidelines for ‘Business’ classification based on Nature of Products and Services, Production Process, Type of Customers, Distribution Channels, Regulatory Environment  and for ‘Geography’ based on Similarity of Economic and Political Conditions, Relationship between Geographies, Proximity, Specific risks associated with a Region, Exchange control regulations etc.,

I am aware that this article has probably crossed reasonable limits. However, all the erudite readers will be quick to realize:

  1. Aspects related to classification of ‘Business’ / ‘Geography’ segments (and possibly additional segments!), how to deal with financial elements that can’t be directly ascribed to specific segments (what kind of allocation rules etc., can be logically followed)   are all matters which are internal to any organization in which Professional Audit and Accounting Firms   are best positioned to assist in formulation of proper accounting framework for transition and then to ongoing compliance.
  2. IT Service providers like Sierra Atlantic Inc., – on the other hand can consider the inputs for ongoing compliance arrived in Step 1 , evaluate gaps in the existing ‘Enterprise Applications’  configurations and come up with a sequence of steps for best possible fulfillment – i.e.:
  • Upgrade to Release 12 Vs Re implement – Examine the flexible ‘Sub Ledger Accounting’ [SLA’ framework provided], other options [Ex. Multiple transaction types, Capturing mandatory additional information during transactions, organization structuring etc.]

Hopefully, readers now see the difference that I briefly dwelt upon in my first dialogue on the subject!  Before I conclude, here is another  compliance rider of IAS14  – Once a segment is reportable, in the next year even if it goes below the threshold limit it continues to be reported  and likewise if you have new reportable segment information that emerges in one year then you better provide previous year comparison as well !! – Accountants always on the receiving side! Icing on the cake, I suppose??

By for now, and hope to be back soon with insights into yet another topic.

Cloud Web Application Development and Deployment on Windows Azure Platform

Posted on : 23-11-2010 | By : Rajeswar Turlapati | In : Enterprise Services, Web Applicatons Development & Maintenance

Tags: , , ,

1

Introduction

Nowadays, several hosting companies are assuring to provide high-end infrastructure and application services over the cloud computing environment.  This environment contains number of virtual machines running on one or more physical systems.  With the introduction of cloud computing, revolutionary changes have been taken place in hardware and in data center models with exceptional online storage and backup systems.   Security, reliability and availability are major challenges for cloud hosting providers and they are effectively monitored in accordance to the SLAs defined with the users.  Cloud environment is denoted as public or private based on the availability and accessibility of the environment at specific premises with necessary privileges.

Fig: 1   Imaginary picture of private and public cloud environments

Public cloud

In general, everyone can access public cloud environment with appropriate subscription from service providers.  In public cloud computing environment, users never know hardware details of the server on which their application is hosted; because server scales up to tens of thousands of computers automatically on need basis.  Infrastructure as a service (IaaS) is industry vernacular for the public cloud computing services as it offers access to virtual servers, desktop computers or remote storage locations on usage basis.

Private Cloud

Private cloud is similar to public cloud environment, but access is restricted to limited number of users within the company firewalls.   Private cloud computing can be tightly integrated with public cloud computing environments which are running on high bandwidth of 24 X 7 availability.   There are several wrong perceptions about private cloud computing with apprehensive calculations of hardware and software costs.  In reality, it can be set-up in much cheaper way and wouldn’t consume much time to install the software.   At minimum, private cloud environment can be set-off with $4000 approximately.

Cloud Service Providers

Microsoft, Amazon, Google, Sales force…etc are the leading public cloud service providers in today’s market. In general, all of them would provide more or less same type of services with their innovative business ideas.

Cloud Users

Cloud services are mainly beneficial for the technical people or hosting companies who wish to use cloud as future platform for their business.  It’s less significant for the end users who browse the application from the cloud environment.

If you’ve a question like, who are the users for the cloud environment?

It depends on the type of service subscribed from the cloud service provider.  For example, a development team can create a web application that will be hosted in cloud environment.  Similarly tester can validate same web application on cloud staging environment.  A hosting company might want to host their web sites on public cloud environment to reduce costs on hardware.  A gaming company could deploy online games in cloud environment to make use of hardware acceleration and performance.  All these users must subscribe appropriate services from the public cloud environment before start using it.

Web Application Development and Deployment on Windows Azure

You can look at the media files which demonstrate the subscription, development and deployment process of the public cloud computing environment on Windows Azure.  I’ve built these movies based on the sample scenario that was explained as objective in 1st video.   Essentially these movies would provide answers to the following 3 questions…



In Microsoft’s perspective, cloud computing affects 3 important areas / models…

  • Data Center / Hardware model;
  • Application model;
  • Operation model.

Data Center / Hardware Models: Unlike traditional monolithic data centers, pre-assembled/modular data centers are emerging in today’s market; especially in the cloud computing environment and hardware has enormous capacity to produce extremely high performance and backup at nominal cost.  IaaS (Infrastructure as a Service) provides a platform for virtualization where you can subscribe virtual servers, desktops and other infrastructure related services on usage basis.

Application Model:  In cloud environment, we can easily and quickly deliver applications that are targeted for international audience from any device with rich end-user experience.   A simple browser with internet connectivity would be sufficient to deal with business critical applications.  SaaS (Software as a Service) offers solutions to the wide variety of applications on consumption wise.

Operation Model:  Services from the cloud environment would be available on 24X7 basis.  You’ll be covered under pre-defined or customized SLAs when you subscribe services from the public cloud environment; it provides incredible online storage with strong back-up and recovery mechanism.

Web Pages In Localised Languages

Posted on : 16-11-2010 | By : Chaitanya Munjuluri | In : Web Applicatons Development & Maintenance

2

The problem:

They say music is the language of the universe. That sounds (pun intended) good but what about written languages? Since I can read/write English I have been lucky enough to be able to visit most of the websites. There are many others who do not and when they visit websites, the default language is English and that is when things go awry. Some websites have a localised version of the webpage but how does the user know how he can view the page in the language of his choice, without actually knowing that he has to spot the text “Language”? This assumes that the user can read/write English. Here are a few fixes that I propose. Mind you that some of them are already in use.

Possible solutions:

IP based:

We can map geo-ip to a language since the ips allocated to countries are well known. However this threw a problem for me when I was in South Korea. Initially I could not read/write Korean and I had no idea how I could change the language to English on MSN.com . I finally used a proxy based out of UK to get the pixel location of the term “language” and mapped it to the Korean version of the page. This hack does not work all the time since the webpage layout might be different for different territories (not to mention the browsers).

Login based:

When a user logs into the website we can set the language of the pages based on his preference at the time of the account creation. This is by far the best solution. It requires pain for the user only at the initial account creation. However the problem moves to the default webpage that displays the login screen.

Scrolling/cycling text:

A ticker that scrolls on the top right portion of the screen that says “language” in multiple languages is the solution that I love the most. Since humans (being predators) are attracted to movement this solution relies on grabbing a user’s focus to the most important piece of information for the page. Obviously the user will ignore all the text that is incomprehensive and latches onto the text that is in familiar language. A drop down just below it should hold a list of all languages.

Flags based:

A slight variation on the above is to use flags instead of text, especially where the locales might not be properly supported. The only problem with this is when a single country has multiple languages (ex: India).

Conclusion:

In my humble opinion, I’d go for the scrolling/cycling text solution since it is easy to manage and ensures that all the possible languages are covered. I’d love to hear any interesting solutions that people have come across.

Unless one of these (or any new) solutions will be incorporated, the problem will only grow manifold as the internet age reaches out to every nook and corner of the world. The information revolution cannot be fully realized unless web content in localized languages become a reality.

Process Manufacturing: Embarking On a R12 Journey – 3

Posted on : 09-11-2010 | By : pankaj.muley | In : Enterprise Applications & Services, Industries, Manufacturing, Oracle Economy of Products, Oracle e-Business Suite, Services

0

After a long gap, I am once again continuing my earlier OPM upgrade blog series. Carrying on from where I left, OPM upgrade is definitely different unlike the other module upgrades in Release 12+. This is due to fact that Oracle has introduced much awaited inventory convergence in this version. Before we jump on to the inventory convergence, associated impact and some of the challenges which customer might face, I would like to share some details on the upgrade steps for an OPM customer. For OPM customers, there are some additional steps to be performed during the upgrades. Please refer oracle support website for details on OPM migration. Usually upgrades are performed through various iterations and each upgrade would have a few sub-phases, ‘pre-migration’, ‘inline migration’ and post migration’. To complete iteration these sub-phases are followed by additional functional configurations, unit and integration testing. While these iterations are in process, another team in parallel would work on re-certifying CEMLI’s to work in the new environment so that when the final system integration testing is being performed, all the pieces of an upgrade puzzle can be tied together.

Going little deeper into upgrade migration steps, there are a set of pre-determined activities which are performed, but the key lies in pre-migration steps which involve convergence migration setup and post migration steps where the transformation to new model happens. Convergence migration setup form facilitates customers to review their current setup related to companies, organizations, warehouses, items, batches and quality data. Especially in the first upgrade iteration, this phase is the most critical phase where a  high degree of collaboration happens from the customer and vendor team. Hence, we usually recommend a higher time allocation from the customer team during this phase of the project. The setups thus finalized, will determine the new model. Some of the validations which happen are inventory validations, process execution batch validations, quality validations, MAC to SLA model validations etc. Brief details on each of these validations are available in OPM migration guide.

Our experience in some of OPM upgrade cases indicates details provided in migration guide are not sufficient, for example, how the status control of OPM is handled in discrete with new on-hand material status control or how is ISO handled with upgrade, there are some challenges in handling non-inventory items with new model, dual UOM control and deviation issues affects transactions in new model, negative inventory issues in new model, why all the attributes are not migrated during upgrade. While these are some of the issues, there are many more that affect the overall upgrade activity and indirectly impact solution acceptance and user experience with new solution. In addition to this, especially in the case of OPM upgrades, the volume of data in specific functional areas affects the overall upgrade blackout time and needs detailed evaluation before any plan is finalized. This is where our deep-domain expertise in the process manufacturing vertical can help our customers.