Frameworks in Modern Enterprise Applications

Not that the other thread hasn’t been an absolute joy to follow, I am very curious to get opinions regarding whether today’s major frameworks are beneficial when developing an enterprise class application.

To help keep this thread on topic, here is some clarification on some terms which may come in to use in this discussion:

Major Frameworks - Actively developed, active community, published documentation - examples include e.g. Symfony2, Laravel, Zend Framework 2, etc. (looking at members of the PHP FIG might provide a good starting point for examples)

Enterprise Applications - Business critical (e.g. the business is wholly dependent on the application functioning correctly and being available), reliable, performant, scalable

Modern - Takes advantage of modern features of the language (e.g. opcode caching, etc) as well as providing consistent functionality to support modern user habits (mobile/tablet, REST, etc), unit tested

Here’s some background as to why I am curious about this:

For the last several years, I have worked full time for a company providing a SAAS application to clients in the healthcare industry. We work within a custom made application framework. While the custom framework has met our needs to this point, we are tasked with meeting every challenge provided by the modern world on our own (security threats, changes in user habits, etc). As one of the benefits of using a framework is the ability to leverage the work of dozens (potentially hundreds or more) of other developers’ to help solve our challenges, we are certainly interested in doing so.

Some of our concerns though revolve around things like:

  • Flexibility - will we be able to respond to our customers’ needs within the same timeframes
  • Scalability - will we be limited in our ability to onboard new clientele
  • Performance - will there be a significant reduction in the efficiency of our hardware and other resources

If you have experience using a framework in an enterprise application setting, can you provide your thoughts regarding that, both positive and negative, along with the framework(s) you’ve used and whether or not you would recommend using it for a project being started today?

I think we need to define that better.

You have:

Enterprise Applications - Business critical (e.g. the business is wholly dependent on the application functioning correctly and being available), reliable, performant, scalable

I think that is a pretty good start.

Here is another definition from Microsoft:

In today’s corporate environment, enterprise applications are complex, scalable, distributed, component-based, and mission-critical. They may be deployed on a variety of platforms across corporate networks, intranets, or the Internet. They are data-centric, user-friendly, and must meet stringent requirements for security, administration, and maintenance. In short, they are highly complex systems.

I also found a list of common software types used for the enterprise:

  • Automated billing systems
  • Payment processing
  • Email marketing systems
  • Content management
  • Call center and customer support Customer
  • Relationship Management (CRM)
  • Enterprise Resource Planning (ERP)
  • Business Intelligence Business
  • Continuity Planning (BCP) HR
  • Management Enterprise Application Integration (EAI)
  • Enterprise search
  • Messaging and collaboration systems.

Normally, only the Content Management software would be a public facing part of the system. That is also where a PHP application would find its best place in the list. But, there is no reason why a PHP app couldn’t do some of the other application tasks.

I’d also like to throw into the definition the size of an Enterprise. I found a definition from Gartner, which explains what an Small to Medium Business (SMB) is, which is below an Enterprise sized business.

A small and midsize business (SMB) is a business which, due to its size, has different IT requirements—and often faces different IT challenges—than do large enterprises, and whose IT resources (usually budget and staff) are often highly constrained. For the purposes of its research, Gartner defines SMBs by the number of employees and annual revenue they have. The attribute used most often is number of employees; small businesses are usually defined as organizations with fewer than 100 employees; midsize enterprises are those organizations with 100 to 999 employees. The second most popular attribute used to define the SMB market is annual revenue: small business is usually defined as organizations with less than $50 million in annual revenue; midsize enterprise is defined as organizations that make more than $50 million, but less than $1 billion in annual revenue.

So Enterprise Applications would be used by 1000 or more employees.

I know, for instance, Youporn, probably the biggest porno web sites out there, uses Symfony. I am not sure how much of their other systems are PHP based. But, the website itself is serving huge amounts of users and it is mission critical.

This quite good interview/ article discusses a good bit of how PHP fits into an enterprise application scenario.

I am personally very interested in this conversation too. So, I’d like to add to the discussion one question. Has anyone ever built such an app (like from the list above) with PHP or used such an app built with PHP in an Enterprise? Do you know what framework is behind it?

Scott

1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.