World of Application Packaging

What is Package?

A package is a namespace that organizes a set of related files, classes and interfaces. Conceptually you can think of packages as being similar to different folders on your computer. In Java world, Packages (sometimes called namespaces) are used to give a separate identity (name) to a group of classes.

What is a application package?

Application package software, or simply an application package, is a collection of software programs that have been developed for the purpose of being licensed to third-party organizations.

Why to do Package Management?

  • Package Versioning
  • Easy Deployment
  • Manage the package
  • Build package
  • Distribute the package
  • Avoid Complexity
  • Package Dependency Management
  • To Store the artifact
  • Standard Process and Directory Layout
  • Saving time
  • Integrity of the package
  • Availability is time consuming
  • Security
  • Enforces for Standard Process
  • Maintenance & Cleanup
  • Schedule the maintenance
  • Backup
  • Mirror

Types of Package?

  • Source file Package – This package contains a file which is human readable. The javadoc tool generates output that originates from the following types of source files: Java language source files for classes (.java)
  • Binary file Package – This package contains a file which is machine readable in binary format. For example, A Java jar package organizes Java classes into namespaces. or .exe file

Lifecycle of Package?

Why do we need a Application Packaging?

  • Hiding the complexity of the software config
  • Having the proper versioning
  • Having the name of the softare
  • Remove it, Upgrade it, Install it

System Based Packaging

  • Windows
    — EXE – Developed using VS, INSTALLANYWHERE, INSTALLSHIELD, WISE
    — MSI – Developed using VS, INSTALLANYWHERE, INSTALLSHIELD, WISE
  • Linux – CENTOS / RHEL
    — RPM – Developed using RPMBUILD
  • LINUX – UBUNTU
    — DEB – DEBIAN
  • LINUX – DEB
    — DEB – DEBIAN
  • MAC
    — DMG – DMG

Application Based Packaging

  • JAVA
    — EAR – Developed using MAVEN, ANT, JAVA
    — JAR – Developed using MAVEN, ANT, JAVA
    — WAR – Developed using MAVEN, ANT, JAVA
    — BIN – Developed using EJB
    — TAR – Developed using WINTAR,, TARBALL,
    — ZIP – Developed using WINZIP
  • DOT NET
    — MSI – Developed using VS, INSTALLANYWHERE, INSTALLSHIELD, WISE
    — EXE – Developed using VS, INSTALLANYWHERE, INSTALLSHIELD, WISE
    — DLL – Developed using VSS, COMMANDS,
  • Other Language
    — RUBY – RVM
    — GROVY – gvm
    — PYTHON – pip
    — PERL – ppm

Repository Management System

CENTRAL –> PRIVATE –> LOCAL –>

Some of the CENTRAL Repository Management System

  • repo.apache.org
  • yum reposittory
  • Maven Repo
  • apt repostiry
  • Nuget Gallery
  • Google Play
  • Apple Store
  • Docker hub

Some of the PRIVATE Repository Management System

  • Sonatype NEXUS
  • Jfrog ARTIFACTORY
  • Apache ARCHIVA

Application packaging Tools and Software

  • WiseStudio
  • Installanywhere
  • Installshild
  • wix
  • Visual Studip
  • Android Studio
  • Winzip
  • Zip
  • tar
  • rpmbuild
Rajesh Kumar