2. Agenda
Introduction
Research on the problem statement
Cloud Computing
SaaS
Salesforce
Functional Flow of Packaging Repository
Technical Flow of Packaging Repository
Demonstration
3. Introduction
The Packaging Repository application is a centralized management of packaging for packing automotive
components in RENAULT and it can be reused for other partners as well.
Organization Background
The project is build for managing packaging repository for RENAULT and for other partners, currently
developed in JAVA-J2EE platform.
The Applications allows us to
• To produce the packaging codes for five types of origin(Renault, Supplier, Odette, Galia, Partners)
• A way to have the characteristics of packaging
• One way to manage packages used
• Single way to produce packaging code
• To list the characteristics of the packaging
4. Research on the problem statement
• Existing System
Existing System Vs. Proposed System
• Proposed System
Current system deals with migrating of Java-J2EE application into cloud computing with help of
salesforce. The goal of this project will provide following Benefits to the Business and reduce TCO - Total cost of
Ownership by Lower licensing costs and reduced maintenance cost.
The RENAULT Packaging Repository application is currently developed in Java-J2ee platform. Currently
the application is running in data center with clustering etc. with a huge cost of operation/maintenance.
5. Report on Benefit in terms of Estimated Development Time and Project TCO?
Force.com Business Case Calculator will help us to give ball park estimate, has 3 step processes to find out estimated
development time and project TCO - http://www.salesforce.com/platform/tco/calculator.jsp
The unit value is given based on currency Euro
Application
Complexity
Application
Type
Application
Development &
Maintenance
Step 1: About the application
10. Cloud Computing
To the above questions the principle is very simple.
Offering Computing
Storage
Software as a Service & Cost Benefit
• Anywhere/Anytime Access to Data
• Improved Reliability and Security of Data
• Wider Access to Free Software
The 5 Essential Characteristics are
• On-Demand Self Service
• Broad Network Access
• Resource Pooling
• Rapid Elasticity
• Measured Service
What is it and Why should we care?
What are the benefits?
11. Traditional IT Vs Cloud Computing
CosttoBusiness
number of users number of users
CosttoBusiness variable costs variable costs
Set Up Costs
Initial Costs, such as purchasing
hardware, software, Licensing,
etc.
No Set Up Costs
Where is the data ?
Data typically goes to large data centers in the network, depending on the type of cloud.
12. What are the difference types of cloud?
What are the difference cloud services?
PRIVATE PUBLIC HYBRID COMMUNITY
Resource dedicated to one
customer
Resource shared by
multiple customers
Customized combination
of shared and dedicated
resources
Dedicated resource for a
group of customers
SOFTWARE-AS-A
-SERVICE
PLATFORM-AS-A
-SERVICE
INFRASTRUCTURE-AS-A
-SERVICE
It enables a user to be able to
use an application without
installing it on a computer or
other type of device.
It allows third parties to build
applications without buying
hardware or maintaining
software.
CONSUME BUILD HOST
It provides hardware capacities
as demanded by users, to run
their own software services.
14. SaaS
What is SaaS ? stands for “Software as a Service”
SaaS
Business
Individual
SaaS is a model where an application is hosted on a remote data center and provided as a service to
customers across the internet. In this model the provider takes care of all software development, maintenance and
upgrades. Rather than relying on desktop software or traditional servers, software is hosted by a third party,
available via cloud.
Salesforce is a common and popular example of a CRM SaaS application. The provider also provides
support and maintains the data center. Customers use the software application using a browser.
16. PROS
• Stay focused on business processes
• Change software to an Operating Expense
instead of a Capital Purchase, making better
accounting and budgeting sense.
• Create a consistent application environment
for all users
• No concerns for cross platform support
• Easy Access
• Reduced piracy of our software
• Lower Cost
For an affordable monthly subscription
Implementation fees are significantly
lower
• Continuous Technology Enhancements
• Initial time needed for licensing and
agreements
• Trust or the lack thereof, is the number
one factor blocking the adoption of
software as a service (SaaS).
• Centralized control & Possible erosion of
customer privacy
• Absence of disconnected use
CONS
Pros and Cons of SaaS
17. Salesforce
Salesforce.com has grown into a platform for developing and running mission critical, enterprise
applications. Salesforce CRM is a set of business processes and integrated applications that help companies
manage customer information, activities, and conversations in one centralized location. By combining business
processes, people, and technology, companies can drive sales and keep customers satisfied after the sale.
The company is best known for its Salesforce customer relationship management (CRM)
Why do would we want to build our application on the Force.com platform ?
• Delivers faster time to value1
• Requires no up-front capital expenses2
• Minimizes operational costs3
• Requires fewer technical resources4
• Simplifies integration5
18. What makes application development on the Force.com fast and cost-effective?
1
• Programmable user interface
2
• Programmable cloud logic
3
• Real-time database customizations
4
• Granular security and sharing
5
• Integrated content library
6
• Visual process manager
7
• Customer-facing websites
8
• Custom Application Development
19. The below schematic view explains overall salesforce architecture. The below diagram
illustrates, how pages are constructed on the server and depending on the logic behind the page may
interact with the database through apex controller, invoke external web service calls, or both, before
returning the view to the client.
Salesforce Architecture
20. One of unique feature of force.com is multitenant kernel, designed specifically to service a cloud,
is difficult to build because it must be reliable, scalable, customizable by tenants, upgradeable without
downtime, secure, and fast.
How can we keep tenant-
specific data secure in a
shared database so that one
tenant can’t see another
tenant’s data?
How can one tenant customize various
schema objects and an application’s user
interface in real time without affecting the
functionality or availability of the system
for all other tenants? How will the system’s response time scale
as tens of thousands of tenants use the
service?
Force.com – Multitenant kernel
21. Force.com’s core technology uses a runtime engine that materializes all application data
from metadata—data about the data itself.
Force.com’s has a well-defined metadata-driven architecture, there is a clear separation of
the compiled runtime database engine (kernel), tenant data, and the metadata that
describes each application.
These distinct boundaries make it possible to independently update the system kernel and
tenant-specific applications and schemas, with virtually no risk of one affecting the others
Answer to the 4 questions from the previous slide
22. The Model, View, Controller Paradigm
ControllerModel
View
The model, or data structure, can be defined as either sObjects (the entity definitions for persisted data) or classes in
Apex.
The view, or presentation layer, is comprised of Pages and components as described above.
The controller, or logic layer, includes any custom controller logic written in Apex, or standard behavior generated by
the Force.com platform for each business entity.
Below diagram explains the flow of data between Standard & Custom Objects (Model), Standard Controllers &
Apex (Controllers) and Visualforce pages (View) .
23. Functional Flow of Packaging Repository
There are 5 types of user who involved in Packaging Repository and 5 modules involved in
this application.
Administrator – is responsible for creation, modification, suppression of packaging and also addition of images and
documents.
Validator – is responsible for Validating the packaging and Management of Parameter for the packaging
Coordinator – is responsible for Viewing a packaging and Management of Parameter for the packaging
Document Manager – is responsible for addition of images and documents and also viewing a packaging
User – is responsible only for viewing a packaging
24. Second if packaging is entered with all the required characteristics, which can be sent for validation
with Status = ‘E’, until then the packaging with characteristic’s can be saved in draft with Status = ‘B’.
Third either the packaging can be validated or refused by the validator with comments. If validator
validates the packaging the status needs to be changed from “E” to “V”. If the validator refuses the
packaging the status need to be changed from “B” to “E”.
Lifecycle of a Packaging
There are 3 status involved in lifecycle of a packaging.
First the package code is created with Status = ‘B’ and with all the characteristics.
Create Package
Modify Package
Status = ‘B’
Request Validation
Save
Verify
Expected Validation
Status = ‘E’
Validated Package
Status = ‘V’
Refused Validation
B – Draft (Code: 1)
E – Study (Code: 2)
V – Validated (Code: 3)
25. Technical Flow of Packaging Repository
The application has been designed with help of Apex Enterprise Design Pattern (EAA) through the
various parts of a design model called Separation of Concerns (SOC), of which two design patterns were
originally defined by the accomplished software consultant and speaker Martin Fowler.
• Apex Enterprise Patterns – Separation of Concerns
• Apex Enterprise Patterns – Service Layer
• Apex Enterprise Patterns – Domain Layer
Why & What are the benefits of SOC ?
Complex code gets out of hand when we don't partition it properly - heavily intermixed, making it
error prone, difficult to maintain, and hard to learn. In order to avoid to this inconsistency SOC is best practice
which can be followed and also helps in “Code-Reuse”.
Benefits of SOC – Logic , Storage and UI interaction once we separate, we can define layers within
our application with its own concerns and responsibilities and make the application as a whole.
26. On the Force.com platform, there are two distinct approaches for development
• Declarative (point-and-click) – Need not to use SOC
• Traditional coding – Better to use SOC
These two approaches fit into the standard SOC layers as depicted in the following image:
27. Service layer interaction
Domain layer interaction
Clear and strict encapsulation of code
implementing business logic,
calculations and processes.
Bridge between presentation and
domain layers
CRUD operations on Custom Objects
Contains SOQL queries and DML
commands
Domain Layer indirectly accessed
through Service Layer
28. Overall controller diagram
At top of the all the controllers hierarchy, BaseController is the base abstract controller which need to be
extended by all other controller in order to have some basic functionality needs which can used by all
other controllers