Challenges in Cloud Computing for EDA
The top level benefits of cloud computing - including economic, flexibility, and simplification benefits are well known and widely experienced across various industries. Software-as-a-Service is a great example of how one level of cloud computing has created significant industry transformation, and now represents over 25% of revenue in some software markets. EDA is slowly joining this transformation, with challenges remaining for both vendors and customers. For customers, the most commonly listed issues with cloud computing seem to be security and design flow limitations. The former is a topic to itself, while design flow limitations are of course more specific to EDA. This then becomes the vendor challenge, taking a new technology and applying it to EDA to solve problems in better ways and by taking advantage of key cloud computing attributes, not necessarily by simply moving existing applications onto some type of cloud service.
Interestingly, some of those key attributes are not tied exclusively to the cloud, they are more a function of web applications and the architecture they work in. Web applications use a client-server model with a network via an intranet or the Internet, and are browser-based on the client side. This delivers some significant benefits - browsers provide a true client side processing capability while running on any platform from any location, the network provides a real-time collaboration capability that is consistent across users, and finally the web server provides a centralized single source methodology for data as it changes over time. These kinds of benefits only materialize when a tool is re-created as a web application, not simply re-packaged.
An illustrative example would be the case where an existing application is moved onto the web and accessed remotely using specialized clients to "tunnel" video and user inputs over the network between user and application. With such deployments, the application has moved to the cloud and virtualization can be used to provide benefits in terms of compute efficiency; however, the user experience and basic functionality remains the same or worse. The user experience may in fact suffer because of the delays in tunneling user inputs and graphical display for an application that was not designed to be deployed over the network. This misses the opportunity to take advantage of technology and perhaps is one of the reasons why SaaS has not gained as much traction in EDA as it has in other markets.
In thinking about cloud computing for EDA, particularly as it applies to web applications, it's apparent that one area to look at in the design process is where data is flowing across the development teams. For example, teams specializing in hardware design, hardware verification, physical validation and technical publications, each use information from the core data. In this context everyone needs to be working from the most current, updated data and any propagation of errors needs to be eliminated. As well the application becomes more than something that is run by one person and has a start and finish, it becomes a service that must run robustly, potentially always on, and serve the application to many concurrent users. The application becomes more about providing a multi-tasking environment for a team to accomplish a task and all that goes along with that - turning a sequential flow into a more collaborative one. This is what web applications do.
While cloud computing attributes can be used to deliver unique approaches to EDA problems, it is also likely that customers see design flow limitations from another perspective - multi-vendor flows. In the shorter term it is a case of cloud applications mostly fitting into flows with data being handled by existing scripts and customizations which have been created by customers for their flow. However, in the longer term the issue of using multiple cloud computing based tools and being able to tie the flow together in an automated, customer specific way comes to the fore. The solution for this is Web Services (or Web-APIs), which provide a standard means for the inter-operation of different applications running on a variety of platforms over the web. Taking advantage of an architectural style like REST and standards such as WSDL and SOAP, customers can smoothly create flows with cloud applications in a similar manor to how they do today, in some cases existing code could even be re-used.
The challenges are apparent and well noted - EDA users have unique flows and demand control over those flows. The combination of cloud computing paired with Web-APIs looks like a powerful combination with the potential to solve the problem in a better way, to create a complete flow that integrates with any local tools and lets EDA user customize their needs across traditional tools, SaaS offerings, and public and private compute infrastructure in a way that is customized to each EDA customers' specific needs.