1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

Main Page

From p2ee

Jump to: navigation, search


Welcome to p2ee - Perl Application Framework and ERP Applications

Fast Fatcs

  • p2ee is a Framework for Internet-scale Web Applications
  • Completely and truly RESTful
  • Is not only for ERP. p2ee is more than "Enterprise", it's Internet-scale
  • Ideal for cloud computing
  • Uses state-of-the-art Web 2 technologies
  • It can evolve as technology evolves

Introduction

p2ee is a Framework to build highly scalable Web applications. Although our target applications deal with Business and Enterprise Resource Planning (ERP), the framework itself is by no means limited to ERP. In fact, we are the antithesis of a monolithic ERP Product such as those offered by SAP, Oracle and Microsoft, or their Open Source counterparts such as Compiere, OpenERP and many others. We use the term ERP only as a reference to the previous business application paradigm we aim to shift.

Our aim is to fully take advantage of the Web technologies with a fresh look, instead of porting legacy client-server code and habits to the Web, leveraging on the thousands of OpenSource tools and applications in existence, making it very easy to integrate with any of them, even to proprietary ones. To acomplish this, p2ee builds an architecture that offers many technological advancements that translate directly into value for our users. Some of the most important technological features of p2ee are:

REST Architectural Style

Why this is important to you

This is probably one of the most important technological features that makes p2ee unique. Instead of porting legacy code forcibly onto the Web, p2ee applications have been written in truly Web terms from the start. Instead of using HTTP as a transport protocol by incorrectly tunneling remote procedure calls and abusing the URL, p2ee applications exchange actual resources with the server using the simple semantics of HTTP such as HEAD, GET, POST, PUT and DELETE, thus actually using HTTP as a transfer protocol, the way it should be.

The importance of this may not be immediately apparent, so to help you understand their importance here is a comparison between p2ee and most (if not all) Web-based business applications and ERPs:

Most Web-Based ERPs p2ee

Performance and scalability

  • Inability to take advantage of network caches
  • Having to disable/bypass caching altogether
  • The infamously broken browser "Back" button
  • Inability to actually distribute modularly
  • Need for server sessions and client-side cookies

Security issues

  • Exposing the API on the URL
  • Violation of HTTP semantics: using GET to modify data on the server
  • Usage of WebServices that use SOAP or XML-RPC

Performance and scalability

  • p2ee servers serve only resources
  • Corrrect usage of the URL and Parameters
  • Applications may use resources from many disparate servers
  • Straight-forward linkage and integration of resources and applications
  • Resources are correctly and easily cacheable
  • Virtually eliminate problems with "Back"
  • Correct and actually useful HTTP response codes

Security

  • True HTTP/Web Server Authentication and User Control
  • Full control over the HTTP protocol at any level (Firewall, Proxy, Web Server, etc.)
  • PUT, POST, GET, HEAD and DELETE are exactly that, no more tunneled trojans.
  • No exposed API. Implementation is completely hidden on the server.

These are just some of the advantages of having a 100% REST Architectural Style. For more information on why REST is important please refer to:

Loosely-Coupled Functional Domain Application Model

Why this is important to you

Intead of pretending to be an all-in-one ERP solution, p2ee believes that ERP should be undertaken as a function rather than a product, and that these functions should correspond to naturally occurring Functional Domains within the enterprise, with well established boundaries and information flows, and that these should be loosely coupled albeit well integrated. p2ee is the antithesis of what is viewed traditionally as ERP systems.

The truth is that most ERP implementations today have pretended to take over at the departmental level and have generally failed. It's uncommon to find happy ERP users at the departmental levels, when they have to settle for the corporate ERP functionality, or products that are compatible or officially endorsed by the ERP vendor. This has lead to an unhealthy (in many cases dictatorial) power of corporate IT, that endorsed by supposed best-practices of the ERP vendor, have actually managed to deprive departmental users of producing and/or purchasing the best IT tools for the job at hand. A common and ridiculous scene is a 25 year old ERP consultant vehemently telling a 25 year experienced Mechanical Engineer (who probably had little or no say in the choosing of the ERP) that his product provides the best practice, that will effectively solve all the problems he has been having in keeping up the reliability of his plant equipment.

Bizarre as this may sound, it actually is a common scenario in many of the 90's ERP implementations. In many cases, this has led to great power wars between IT and the departments, ultimately hurting the bottom line. Not to mention the many years and thousands and even millions of dollars spent on an ERP implementation, that ultimately goes no further than implementing 20% of the theoretical capabilities purchased. The bitter truth that many corporations don't want face is that after spending so many resources on an ERP product, their business is actually being run on spreadsheets and the ERP is only used as formality to feed the final result, and satisfy the corporate need for data.

p2ee's view of ERP is to create applications that focus on a specific functional domain, and that these applications may be developed, implemented and run completely independent of each other, but can also run tightly integrated, yet loosely-coupled. This will allow each application and functional domain to evolve and compete at the departmental level while at the same time allowing for the corporate planning function and integration of data and processes. In our view, this should restore the balance of power throughout the enterprise and have IT and the other departments actually collaborating with each other instead of competing for power.

Our data-centric, network-based architecture allows p2ee applications to evolve independently of each other, and at the time offers an easy and reliable way to integrate with each other, and especially with non-p2ee applications, as we don't pretend by any means to be an all-in-one system. Completely the opposite.

State of the art Web2 Technologies

p2ee applications are being built using current and even vanguard Web 2 technologies, combined with the underlying simplicity and power of the REST architectural style. For example, p2ee applications can run on rich Web clients, where the user interface is actually being rendered on the client using state of the art client-side templating and AJAX, or they can also run simple HTML clients, having the user interface rendered at the server.

Why this is important to you

Our architecture is based on well-accepted standards that have made the Web what it currently is. At the same time, we are using the newest technology trends such as AJAX and client-side user interface rendering to fully exploit existing computing resources. This combinations will allow p2ee applications to evolve with emerging trends and evolution of the underlying technolgies such as HTTP, HTML, CSS, etc.

Interesting Technical Details

  • Developed in the popular Catalyst MVC (http://www.catalystframework.org/)
  • Server and CLIENT SIDE TEMPLATES! (via TT and Jemplate: http://www.jemplate.net/)
  • I18N on both TT and Jemplate Views
  • Workflow resources to fully represent State (http://search.cpan.org/~jonasbn/Workflow-1.32/lib/Workflow.pm)
  • p2ee Applications can be used independently of each other
  • p2ee Applications can be integrated to non-p2ee applications
  • p2ee Applications can be easily distributed across different servers
  • Fully documented
  • Easily customizable. Database model is Graphic using special DIA UML Stereotype Class Model. SQL and ORM (DBIx::Class) model by executing a simple shell command.
  • Each application runs on individual database Schemas.
  • Integration easily accomplished via RESTful Web Services
  • Database Links with existing Data (with almost ANY database using [DBI Link]).

Where to go from here

Downloading and Installing

As you may have noticed, no packages are released as such. This does not mean that we don't have working code that you can download and play with. To download current applications and getting them to run you will need:

  • Working Catalyst Development Environment
  • Working PostgreSql 8.x database
  • Administrative rights to configure some stuff

So if you have all these please click here to get the curent apps running. Any questions just use the available tools here at SF.

NEWS

February 2nd 2012: YARA feeding Back to p2ee

As we informed at some point last year Yabarana Corporation, our primary sponsor, took over most of the development for while, whilst heavily investing in their YARA Framework with the idea to eventually pur major contributions back to p2ee, so this year we should expect major code changes in the public domain codebase. To start, there will be major re-writes in the Catalyst layout, especially refactoring a lot of the POC code in the Controller to formal Model classes, some probably as independent models on the CPAN. The other major review is in the Resource Modelling. Whilst p2ee defines at least 3 types of resources, they are not formally defined and somewhat re-inventing the wheel in some cases, so the YARA team has decided to pursue the RDF route for both p2ee and YARA. We think this point alone will be a major milestone for p2ee, so we are very excited for this project in 2012!

September 13th 2010: p2ee Development Environment Released

In an effort to reduce the entry barrier, we have released a complete Development Environment so people can just download, run and hack, without having to spend hours installing and configuring their machines. Just install Virtual Box, download the p2eeDE and your done. Just hack away at the code - Easy peasy!

p2ee to be presented at NASA's KSC Business Expo 2010

p2ee and YARA will be presented at NASA's KSC Business Expo 2010 on Tuesday, October 19, 2010, 9:00 a.m. - 3:00 p.m. Cruise Terminal #3, Port Canaveral, FL - Table #55. A formal whitepaper on the architecture plus some take-home software will be available at the fair. We are trying to coordinate a presentation in a near-by accomodation at about 6pm or earlier. If this happens it will be published right here and on the p2ee mailing lists and forums.


November 5th 2009: Inventory Application Almost Done - Virtual Machine to be Released

Since the installation can be quite complex and frustrating for newbies, we are currently working on a compact VirtualBox machine that you can easily download and run with a pre-configred copy of each application and the development environment.

This initiative will further expand into a live-cd that can be installed on a target real-machine with the complete development environment. We hope to have the VirtualBox machines by the end of the year and the installable live cds by the first half of 2010.

October 3rd 2009: Proven Master / Detail Screen

We have successfully proven the master/detail screen with the Inventory Class/Subclass Application. Even though not much effort has been put into UI and usability as such, the application proves the fact that truly BPM-oriented applications built using our BPR (Business Process Resources) will require virtually no training, and will minimize usage errors. This will result in tremendous savings for companies implementing p2ee ERP applications.

I have set-up a temporary demo site. Please e-mail me if you'd like to take a peek at it.

September 28th 2009: p2ee is now Alpha! A new era for ERP

Many will say this is probably an exaggerated statement but I truly believe that p2ee ERP applications will be like no other on the market today, and for a good time to come. For one thing, they will scale like no other and are truly meant for the Web. It is my belief that we have come up with an architecture that is scalable to something that Google could use to server ERP, and hopefully someday they will (or maybe someone else?)

Anyway, the news is that with the committal of my very first fully operation BPR application "OEM", p2ee has moved from a "concept" to a reality, and it's mostly downhill from this point forward. The OEM BPR-based application proves once and for all that Web-based Business Applications can in fact use a pure resource-based architecture, which for one, translates into the fact that we can use cache without any problems. For example, historic transaction data can be statically stored across many servers (as Business Element Resources) and incrementally updated. This would take full advantage of the "Web" as it was originally conceived and the reason why it scales so well.

I am currently cleaning up the pure HTML and BER stuff that was broken with the making of the BPR, and soon I will have a demo site where people can actually understand what we are talking about here.

August 15th 2009: New p2ee Twitter

To all you Twitter fans out there, I just registered the p2ee in Twitter. The idea is to keep the binnacle log there somehow. It's my first time using Twitter so please bear with me:

http://www.twitter.com/p2ee

p2ee at OSCON 2009

We proudly presented p2ee at OSCON 2009 this year. For details and presentations slides please follow this link:

Give yopur ERP some REST with p2ee - OSCON 2009

New Binnacle

I have been keeping a detailed log in the project Binnacle. It shows the project advancement, thoughts and a lot of inner details into the development of the code. I'm keeping a copy here in the Wiki but if you have the svn code, just update it to get the latest version. The Binnacle is currently in inventory/trunk/inventory/binnacle

Personal tools
documentation