SAP Technology News

Android App Development – Java Virtual Machine

What is a Java Virtual Machine?
The Java virtual machine is called “virtual” because it is an abstract computer defined by a specification. To run a Java program, you need a concrete implementation of the abstract specification. This blog describes primarily the abstract specification of the Java virtual machine.
The Lifetime of a Java Virtual Machine
A runtime instance of the Java virtual machine has a clear mission in life: to run one Java application. When a Java application starts, a runtime instance is born. When the application completes, the instance dies. If you start three Java applications at the same time, on the same computer, using the same concrete implementation, you’ll get three Java virtual machine instances. Each Java application runs inside its own Java virtual machine.
A Java virtual machine instance starts running its solitary application by invoking the main() method of some initial class. The main() method must be public, static, return void, and accept one parameter: a String array. Any class with such a main() method can be used as the starting point for a Java application.
For example, consider an application that prints out its command line arguments:
Code:
// On CD-ROM in file jvm/ex1/Echo.java
class Echo {
public static void main(String[] args) {
int len = args.length;
for (int i = 0; i < len; ++i) {
System.out.print(args[i] + " ");
}
System.out.println();
}
}
You must in some implementation-dependent way give a Java virtual machine the name of the initial class that has the main() method that will start the entire application. One real world example of a Java virtual machine implementation is the java program from Sun’s Java 2 SDK. If you wanted to run the Echo application using Sun’s java on Window98, for example, you would type in a command such as:
Java  Echo Greetings, Planet.
The first word in the command, “java,” indicates that the Java virtual machine from Sun’s Java 2 SDK should be run by the operating system. The second word, “Echo,” is the name of the initial class. Echo must have a public static method named main() that returns void and takes a String array as its only parameter. The subsequent words, “Greetings, Planet.,” are the command line arguments for the application. These are passed to the main() method in the String array in the order in which they appear on the command line. So, for the previous example, the contents of the String array passed to main in Echo are: arg[0] is “Greetings,” arg[1] is “Planet.”
The main() method of an application’s initial class serves as the starting point for that application’s initial thread. The initial thread can in turn fire off other threads.
Inside the Java virtual machine, threads come in two flavors: daemon and non- daemon. A daemon thread is ordinarily a thread used by the virtual machine itself, such as a thread that performs garbage collection. The application, however, can mark any threads it creates as daemon threads. The initial thread of an application–the one that begins at main()–is a non- daemon thread.
A Java application continues to execute (the virtual machine instance continues to live) as long as any non-daemon threads are still running. When all non-daemon threads of a Java application terminate, the virtual machine instance will exit. If permitted by the security manager, the application can also cause its own demise by invoking the exit() method of class Runtime or System.
In the Echo application previous, the main() method doesn’t invoke any other threads. After it prints out the command line arguments, main() returns. This terminates the application’s only non-daemon thread, which causes the virtual machine instance to exit.
The Architecture of the Java Virtual Machine
In the Java virtual machine specification, the behavior of a virtual machine instance is described in terms of subsystems, memory areas, data types, and instructions. These components describe an abstract inner architecture for the abstract Java virtual machine. The purpose of these components is not so much to dictate an inner architecture for implementations. It is more to provide a way to strictly define the external behavior of implementations. The specification defines the required behavior of any Java virtual machine implementation in terms of these abstract components and their interactions.
The block diagram of the Java virtual machine that includes the major subsystems and memory areas described in the specification . Each Java virtual machine has a class loader subsystem: a mechanism for loading types (classes and interfaces) given fully qualified names. Each Java virtual machine also has an execution engine: a mechanism responsible for executing the instructions contained in the methods of loaded classes.
Enterprise Mobility Consulting
When a Java virtual machine runs a program, it needs memory to store many things, including byte codes and other information it extracts from loaded class files, objects the program instantiates, parameters to methods, return values, local variables, and intermediate results of computations. The Java virtual machine organizes the memory it needs to execute a program into several runtime data areas.
Although the same runtime data areas exist in some form in every Java virtual machine implementation, their specification is quite abstract. Many decisions about the structural details of the runtime data areas are left to the designers of individual implementations.
Different implementations of the virtual machine can have very different memory constraints. Some implementations may have a lot of memory in which to work, others may have very little. Some implementations may be able to take advantage of virtual memory, others may not. The abstract nature of the specification of the runtime data areas helps make it easier to implement the Java virtual machine on a wide variety of computers and devices.
Some runtime data areas are shared among all of an application’s threads and others are unique to individual threads. Each instance of the Java virtual machine has one method area and one heap. These areas are shared by all threads running inside the virtual machine. When the virtual machine loads a class file, it parses information about a type from the binary data contained in the class file. It places this type information into the method area. As the program runs, the virtual machine places all objects the program instantiates onto the heap .
As each new thread comes into existence, it gets its own pc register (program counter) and Java stack. If the thread is executing a Java method (not a native method), the value of the pc register indicates the next instruction to execute. A thread’s Java stack stores the state of Java (not native) method invocations for the thread. The state of a Java method invocation includes its local variables, the parameters with which it was invoked, its return value (if any), and intermediate calculations. The state of native method invocations is stored in an implementation-dependent way in native method stacks, as well as possibly in registers or other implementation-dependent memory areas.
The Java stack is composed of stack frames (or frames). A stack frame contains the state of one Java method invocation. When a thread invokes a method, the Java virtual machine pushes a new frame onto that thread’s Java stack. When the method completes, the virtual machine pops and discards the frame for that method.
The Java virtual machine has no registers to hold intermediate data values. The instruction set uses the Java stack for storage of intermediate data values. This approach was taken by Java’s designers to keep the Java virtual machine’s instruction set compact and to facilitate implementation on architectures with few or irregular general purpose registers. In addition, the stack-based architecture of the Java virtual machine’s instruction set facilitates the code optimization work done by just-in-time and dynamic compilers that operate at run-time in some virtual machine implementations.


Unified SAP Mobile Approvals – Go beyond Email, Voice and Point Mobile Approval Solutions

The proliferation of smartphones, tablets and apps brings a new era of intelligence and productivity that is hyper-connecting the entire world. The average consumer and employee is hungry for information and wants the ability to process information anywhere, anytime. The ‘Bring-your-own-device’ (BYOD) is a disruptive phenomenon that puts tremendous pressure on IT to revamp and rethink its mobile strategy.
Whilst company senior executives are running their day-to-day life seamlessly with convenient mobile solutions on the consumer space, they are pondering why their company IT cannot bring simple functions such as SAP approvals to a mobile app?
This demand is pushing IT to find cost effective mobile approval solutions by either building them in house or evaluating pre-packaged mobile approval solutions. The right pre-packaged mobile approval solution can create a quick win for your enterprise and drive immense stakeholder buy-in. However, it is a cumbersome process to evaluate a crowded market of SAP Mobile Approval solutions. The SAP Store offers an array of mobile approval solutions and in this blog, I attempt to assist your evaluation experience and highlight the key features and functionality that you need to consider before you zero-in on any of the mobile approval solutions available in the marketplace.

Evaluate the following features in a SAP Mobile Approvals Solution

  • Consolidated view of all your SAP Approvals – Shopping Carts, Purchase Requisitions, Purchase Orders, Sales Orders, Travel & Expenses, Invoice exception processing, contracts, vendor master, journal entry, payments, invoices, service entry sheets, engineering change records etc.
  • Collective approvals of all your work Items
  • Configurable Dashboard with drag and drop features to prioritize your work items
  • Badges to drive proactive manager action
  • Push Notifications to drive proactive mobile action
  • Substitution/Delegation Feature
  • Forwarding Functionality
  • Attachments Processing
  • Approval/Rejection Notes
  • Native vs. HTML5 Solution
In addition, it is important that you avoid specific transaction approval (point) solutions in your evaluation criteria.

Transaction Specific (Point) Mobile Approval Solutions on SAP Store

GoApproveGo Approve by Advent Global Solutions, Inc. (Purchase Order and Purchase Requisition Approvals)
Enterprise Mobility ConsultingECO Approvals by VC ERP Consulting PVT LTD. (Service Entry Sheet Approval)
AMT Smart ApprovalsAMT Smart Approvals by AMT Consulting, LDA       (Leave Request Approvals)
Mobile ApprovalsMobile Approvals (Invoices, Payments and Contracts Approval)
SAP WorkDeckSAP Work Deck by SAP AG. (HR Approvals – Travel and Expenses and Leave Requests)
Mobile Work CenterMobile Work Center by Net4Site LLC (Purchase Requisition and Purchase Order Approvals)
SAP Payment Approvals by SAP AG (Payment Approvals)
Imagine your senior executive’s smartphone flooded with all these approvals apps to process each transaction approval. A separate app for payments, purchase orders, purchase requisitions, leave requests, time entry?  Can you envision the cluttered and unorganized smartphone of your executive? I am sure you don’t want to annoy your senior executives – the sponsors of your mobile projects.

Excite your project sponsors with unified mobile approval Solutions

SAP Fiori and Mobile Universal Approvals (mWorklist 2.0) from Innovapptive Inc. are great options to consider when you are looking for a unified SAP Mobile Approvals solution.
SAP Fiori: A great HTML5 Mobile solution to deploy in your enterprise as SAP is heavily invested in expanding the scope of its application collection. It is built on HTML5/SAP UI5 and provides access to several of your approval transactions and more on multiple devices.
Mobile Universal Worklist: A unified native SAP mobile approvals solutionthat has shopping carts, purchase requisitions, purchase orders, blocked invoice resolution with GR creation, travel & expenses, contracts, invoices, WBS elements, sales orders, leave requests, time entry, vendor master, journal entry, service entries and more.





















The native mobile app is also extremely rich in features and provides a configurable dashboard, collective approvals, forward functionality, attachments, approval and rejection notes, substitution/delegation capability and the ability to toggle between your inbox and your manager’s inbox.
Both products provide the opportunity to unify your SAP mobile approvals. The two differentiating factors between the products are:
  • Native vs. HTML5 (Depends on your Mobile Strategy)
  • Price Point from a per User License Perspective
We leave the decision up to the reader. Either way, Innovapptive can play as your trusted advisor to select the best solution to meet your needs and with Innovapptive being a certified SAP RDS Services partner; it can help you with your Rapid Deployment Solutions (RDS) implementation for both SAP Fiori and the Mobile Universal Worklist.


Diwali Celebrations at Innovapptive

Innovapptive is an SAP Certified Partner, empowers enterprises with a range of Enterprise Mobility apps which help organizations to Go-Mobile instantly. Recently we celebrated the festival of Diyas, Diwali a beautiful festival of lights celebrated in India. Rangoli highlighted the event at the GDC office Hyderabad. The designs of Rangoli by the employees had all our Apps from various line-of-businesses decorated with colors and lights. Awesome was the view! Glass painting  embeded the piramid of 'Innovate', 'Empower' and 'Transform' on a flower pot with rising Apps. Innovative were our employees in presenting their thought in most attractive ways!

 


SAP AG Announces Innovapptive’s SAP Quality Management App as the Winner of the 2014 SAP Mobile App Challenge

Innovapptive Inc. today announced that it has won the 2014 SAP Partner Edge Application Development for Mobile Challenge. SAP runs these challenges to identify best-in-class partner SAP mobile applications for mutual customers and received hundreds of submissions this year. Innovapptive’s five SAP® certified mobile applications were nominated by SAP’s jury panel to contest in a crowd voting event and Innovapptive’s SAP Mobile Quality Management App finished winners. The Mobile Quality Management App won the 2014 SAP Mobile App Challenge award with convincing margin of votes and the crowd voting was open to SAP customers and public over a period of 2 weeks.
Enterprise App StoreInnovapptive’s SAP certified Quality Management Appprovides a mobile solution for manufacturing companies’ inspectors and operators who are constantly challenged with manual processes to capture accurate inspection lot quality issues. As a result of this manual process, they experience tremendous loss of productivity due to redundant quality related data entry and image capturing process to create an SAP quality notification for an inspection lot. The solution transforms manufacturing companies’ quality control and assurance process by being able to capture an SAP Quality Notification, along with images and GPS information – anywhere, anytime. The Mobile Quality Management solution is an SAP® certified mobile solution and is available on the SAP Store.

“It is a distinct honor and also a sense of accomplishment to win this years’ 2014 SAP mobile app challenge.” said Hari P. Kamineni, CEO and Co-Founder, at Innovapptive Inc. “In 2013, we were disappointed to finish runners up in two categories of the SAP mobile app challenge and our product development teams were extremely determined for the last 12 months to win the 2014 SAP mobile app challenge. We are glad that all our hard work and sleepless nights have been recognized and honored. We dedicate this accomplishment to our entire products team.”
Innovapptive will receive this award at SAP TechEd & D-code 2014, in Berlin, Germany on Tuesday, November 11th. During this festive event in Berlin, Germany, there will be performances by SAP Mentors and Jam Band, followed by the award ceremony. Innovapptive and other finalists will also demonstrate the winning mobile applications on Wednesday, November 12th at the special interest activity “Go Mobile! Live: The 2014 Mobile Challenge Finalists.”
Innovapptive Inc., a 2014 SAP® Pinnacle Awards Finalist within the category “Application Development Partner of the Year”. Innovapptive focuses on achieving “Instant Mobilization” by accelerating customer’s time to market and value for their SAP mobile deployments.
About Innovapptive
Innovapptive is an SAP mobile application development and services partner, a provider of a cloud based mobile application management platform, 30+ SAP-certified mobile apps, and a 2014 SAP Pinnacle Award finalist. Innovapptive offers an array of SAP Mobile products and services that accelerates customer’s time to market and value of their SAP mobile deployments. Innovapptive’s products, the mPower™ App store, a cloud based mobile application management solution and the mPower™ App Suite, prepackaged with an SAP certified add on, allow customers to achieve infinite number of customization through simple SAP configurations. The mPower™ App Suite and the mPower™ App Store provides customers a comprehensive portfolio of end-to-end mobile solutions to instantly take their enterprise mobile. The team at Innovapptive brings a unique and unparalleled combination of SAP, mobile, and industry experience and have transformed large global 2000 customers such as MARS Chocolate, Wrigley’s, AMGEN, ATOS International, Forest City Enterprises, KAUST, Semperian, EBY-Brown, Lord Corporation, and Vallourec USA Corp to name a few.
SAP and all SAP logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries. All other product and service names mentioned are the trademarks of their respective companies.


Transform Retail Industry Order Fulfillment with Mobile Retail Inventory Management Solutions

With over 4 billion devices in the world, which is half the population of the world, Smartphones and Tablets have laid the foundation for us to stay interconnected, make intelligent decisions and stay integrated. This technology disruption has driven a behavioral change in the way we expect our day-to-day life to function. This includes our personal life and at our work place. Since the advent of smartphones and tablets, the retail industry has been focused on empowering their consumers through innovative mobile solutions, leaving behind their employees, who play an equally important role while interfacing with these customers.
The cost of the amount of time employees spend trying to satisfy shoppers who ask about a specific out-of-stock situation is approximately $800 per week. The corollary for shoppers is the amount of time spent waiting for resolution that could be spent more productively for the retailer in shopping – an estimated 20% of the average time for a shopping trip.
Using mobile technology, smartphones and tablets, the retail industry can avoid such situations and better manage their inventory by empowering their employees to increase overall profitability of a retail chain.
Retailers can now use mobile solutions for insight driven inventory management and move away from the reactive process of the past and drive more proactive inventory management. The benefits of using a mobile inventory management solution can be impressive and result in substantial savings in cost of goods sold and a marked increase in gross margin revenue on inventory (GMROI).

Mobile Retail Inventory Management Solution Benefits

1. REDUCE RETAIL OUT-OF-STOCK AND OVERSTOCK SITUATION
Retail shoppers will no longer need to wait in order to resolve an out-of-stock situation. Retail store employees can use their mobile phones to do a quick look up of stock availability at the time of customer inquiry. In addition, Store employees can firm their planned orders anywhere in the store, to decrease their order to shelf time, and avoid an out-of-stock situation.
2. STREAMLINE RETAIL FULFILLMENT WITH MOBILE STOCK MOVEMENTS
Retail fulfill management is the process of recording and ordering the movement of stock around the company and also managing customer deliveries and stock returns. For a retailer engaged in ecommerce business, it is imperative that your available stock information is accurate; avoiding any stock related embarrassments or delayed deliveries. A Mobile Stock movement solution lets you manage receiving and issuing of your stock at the point of receipt or issue without investing in heavy barcode readers, with 3rd party interface integration to your ERP system.
3. STREAMLINE ONLINE ORDER FULFILLMENT BY BATCH PRINTING PACKING SLIPS OVER-THE-AIR
For retailers: Retailers have many options when selling their products online. However, seamless and streamlined shipment of online order fulfillment and warehouse-to-warehouse stock movement can be cumbersome when you have to print these shipping lables/packing slips from a desktop and then process these orders one by one. A Mobile Solution that provides the platform to view all your open sales orders, batch print your packing slips, UPS, Fedex or DHL labels anywhere, anytime can dramatically streamline your order fulfillment process. In addition, being able to notify your customer of the shipment with a single click will transform your online order fulfillment process.
4. MINIMIZE INVOICE EXCEPTION SCENARIOS
In retail industry 31% of invoices get blocked due to untimely goods receipts in the system. This introduces tremendous inefficiency into the Procure-to-Pay lifecycle and decreases employee productivity. Based on a study conducted by OB10, 1 million annual invoices require 175 FTEs to handle invoice exceptions. A detailed case study conducted by Innovapptive indicates that proactive blocked invoice resolution can potentially reduce 20% of FTEs which is equivalent to $1.5M savings. Proactive push notifications to create a Goods Receipt in seconds anywhere, anytime and a Mobile Universal Approvals solution on your Retail Employees smartphone to increase your overall bottom-line.
Innovapptive’s mStockMovements™ and mWorkList™ streamlines your order fulfillment process, avoid out-of-stock, over stock situations and reduces overall cost of goods sold to increase retail industries bottom-line. Learn more about these solutions and download the full demo version of these apps here -


 
Return to top of pageCopyright ©SAP Mobility 2019 | Template design by Privacy Policy|Disclaimer*All trademarks and copyrights remain the property of their respective owners.