Placeholder Image

Subtitles section Play video

  • So when an application is running, it is running on top of what we call a web runtime

  • The web runtime is a set of client-side code that includes the same JavaScript, CSS and

  • HTML engines on all of our platforms

  • it provides access to the device using the security model we discussed earlier

  • as much as appropriate it gives a native application experience

  • on all of the platforms where it is available

  • and finally it provides access to the cloud-based backup service for application receipts and

  • application management

  • A web runtime is not a browser. It has no browser chrome, no browser history, none of

  • those browser features

  • that would distract from the application experience

  • We are currently focusing our web runtime efforts on the Firefox OS Boot-to-Gecko project

  • and on the Android platform where we have a runtime based on Gecko and

  • mobile Firefox. We are working on the web runtime for desktop platforms

  • as a way to support developers for those mobile devices

  • Now let's see how the data flows between these different participants in the ecosystem.

  • To discover and purchase an app

  • the user takes their device and visits

  • the Firefox Marketplace, where they will authenticate themselves using Mozilla Persona

  • this will create a session on the Firefox Marketplace and the user will discover applications

  • of interest to them

  • Upon hitting the purchase button, Firefox Marketplace will initiate a session with our

  • payment provider

  • the user will identify themselves for purposes of payment, and a receipt will be generated

  • and signed.

  • At this moment, the receipt will be installed on the device along with either the manifest

  • or the package

  • Let's see how a web application is installed from a manifest.

  • Upon receiving an invocation of the install API, the device retrieves the manifest from

  • the app's backend server

  • and installs it locally. At this point,

  • the receipt is backed up to the Apps in the Cloud service and the application is ready

  • to run. It's as simple as that.

  • In the case of installing a privileged app, the device will retrieve a package from

  • the Firefox Marketplace containing all of the signed and reviewed code resources for

  • the application

  • and those will be installed on the device. And again,

  • the receipt will be backed up to Apps in the Cloud.

  • Once either the package or the manifest is installed on the device, the application is

  • ready to launch

  • At launchtime, we may check to see if the receipt is expired, and if it is, retrieve

  • a new one

  • Following this, the application will send the receipt to its backend

  • where it will be verified. This will create a session

  • for the user and they will have access to protected content

  • or other resources that the app wants to protect.

  • The application can run knowing that the user is a valid user

  • of the application with a valid receipt.

  • While the application is running, the user may participate in an in-app payment

  • using a flow very similar to the paid app flow we looked at a minute ago

  • The payment provider will create an iframe which will invoke a flow which will allow

  • the user

  • to identify themselves for purposes of payment and choose a payment method

  • Following this, an acknowledgement will be sent to the app's backend so that it can provide

  • the protected content

  • to the user.

  • Web apps can be updated in two different ways. If an app is hosted by a developer

  • Then the update is simply a matter of retrieving updated content from the app's backend

  • and updating the app cache for offline experience.

  • To update a privileged app, the device will retrieve a new package from the Firefox Marketplace.

  • and replace the existing package. The device will conduct periodic requests to check whether

  • an updated package is available.

  • In order to manage applications across devices and across app stores,

  • the user begins by using Mozilla Persona.

  • This authentication allows the user to synchronize the local copy of receipts on their device

  • with the receipts stored in the apps in the cloud server,

  • giving them access to receipts for apps they might have purchased at other times on other

  • devices.

  • The user experience allows them to control

  • which apps are installed on which devices, so they don't end up with everything everywhere.

  • So we've seen the value we provide to users and developers, and we've seen the systems

  • and concepts

  • that make up the ecosystem and how data flows between them

  • As we go from these data flows to our implementation,

  • we start to see the various design pressures in any engineering project and how they interact

  • with one another. What we bring as values to this engineering effort

  • is a goal of creating loose coupling between systems so they are not intimately tied with

  • one another and brittle

  • We are also embracing open standards as we always do at Mozilla, to create open versions

  • of

  • all these APIs, for folks inside and outside Mozilla

  • and we are always focusing on user sovereignty, giving users control of the applications,

  • and where and when

  • information about them is kept, and allowing them as much flexibility as possible.

  • In the coming year, the architecture that I've described will face a number of different

  • challenges I'd like to outline

  • just a few of them. Analytics will be one.

  • We have a goal of providing to developers detailed information about who is using their

  • app, how often, when and where.

  • This will be a differentiator from many other app ecosystems where this information is hard

  • to come by.

  • However it is very important for us to protect user's privacy and not reveal

  • any personally identifiable information, while providing these for analytics.

  • So we have an engineering challenge ahead to find a way to balance those two priorities

  • We have a large challenge coming in the area of linkages across applications.

  • We are intent on isolating applications one from another by creating separate profiles

  • or separate cookie jars, so that applications cannot

  • share information. However, we run the risk

  • of creating problems for applications that do expect

  • cookies to be made available to a service like Facebook Connect.

  • or a shopping cart or a game leaderboard.

  • So we will need to find a way to balance the goal of protecting applications from one another

  • but yet providing access to shared services that all applications expect.

  • One challenge we faced this year is trying to provide access to sensitive device APIs

  • for an application,

  • while protecting users from malware and other bad guys on the Net.

  • and I'm happy to say that this problem we have solved through the security model and

  • the permissions that we discussed earlier.

  • And it's successes like these that make me optimistic

  • that we'll solve the other challenges I've outlined in this talk.

  • For more information abou the Apps ecosystem, there are several documents you can refer

  • to online. One is the specification of the app manifest.

  • One is the documentation at MDN for the navigator.mozapps API. Also on our wiki is the write-up of the

  • App security model.

  • And at MDN the documentation of the Packaging specification for Apps.

  • That's it. Thanks alot.

So when an application is running, it is running on top of what we call a web runtime

Subtitles and vocabulary

B1 app user application apps device firefox

Architecture of the Mozilla Apps Ecosystem - Part 3 - Data Flows & Implementation

  • 26 3
    陳彥良 posted on 2013/11/23
Video vocabulary

Keywords

back

US /bæk/

UK /bæk/

  • adjective
  • Farthest from the front e.g. in a classroom
  • verb
  • To bet money on something
  • To go backwards in a car
  • To support and encourage someone or some cause
  • noun
  • The part of a chair that the upper body leans upon
  • Location at the rear of something
  • The reverse of side something
  • Area on the rear of your body
  • adverb
  • Have returned to a place you were before
running

US /ˈrʌnɪŋ/

UK /'rʌnɪŋ/

  • other
  • The activity of running.
  • verb
  • To depart or travel according to a schedule
  • To cause an animal to move in a certain direction
  • Competing in an election.
  • (Of an engine) to be operating
  • To start or use a computer program
  • To flow in a certain direction, like a liquid
  • Flowing as a liquid.
  • Operating or functioning.
  • To manage or operate a business
  • Managing or being in charge of.
  • To operate or drive something
  • (Of a road) to go from one place to another
  • To move your legs faster than walking
  • Moving at a speed faster than a walk.
  • Moving at a fast pace on foot, never having both or all feet on the ground at the same time.
  • To compete in an election.
  • other
  • To campaign for election.
  • To flee or escape.
  • Flowing or moving like a liquid.
  • Moving rapidly on foot so that both feet leave the ground for a moment in each stride.
  • Operating or functioning.
  • adjective
  • Continuous; ongoing.
  • Currently in progress or operation.
  • Flowing or moving, especially of water.
  • Continuous; ongoing.
  • In operation; functioning.
  • noun
  • A discharge from the nose or eyes.
  • The activity or sport of running.
  • A continuous series or sequence.
  • The act of moving your legs to move quickly
  • The activity of running; jogging.
  • other
  • To be in charge of; manage.
mobile

US /ˈmoʊbl/

UK /'məʊbaɪl/

  • adjective
  • Able to be moved or able to move
  • Capable of being moved readily from place to place, especially in providing a service.
  • Able to move easily from one job, place, or social class to another.
  • Capable of moving or being moved readily.
  • Able to move easily from one job, class, or social group to another.
  • Characterized by a high degree of movement and change.
  • noun
  • A decorative structure that is suspended so that its parts move in the air.
  • A decorative structure that is suspended so as to turn freely in the air.
  • Personal phone you take with you wherever you go
  • A mobile phone.
  • A cellular phone.
run

US /rʌn/

UK /rʌn/

  • verb
  • To depart or travel according to a schedule
  • To cause an animal to move in a certain direction
  • (Of an engine) to be operating
  • To start or use a computer program
  • To flow in a certain direction, like a liquid
  • To manage or operate a business
  • To operate or drive something
  • (Of a road) to go from one place to another
  • To move your legs faster than walking
  • noun
  • A vertical line of broken stitches in stockings or tights.
  • A large number of fish swimming together to spawn.
  • A score in baseball.
  • A continuous period of success or popularity.
  • Journey between two places made by ship or car
  • The period of time that a play, movie, etc. is shown to the public.
  • An act of running, especially for exercise or pleasure.
  • Series of similar things or successes and failures
  • A prepared course or track for skiing.
  • Act of running; exercise of running
early

US /ˈɜ:rli/

UK /ˈɜ:li/

  • adverb
  • Coming/happening before others in a time sequence
  • Happening sooner than expected
  • adjective
  • Happening or appearing before
give

US /ɡɪv/

UK /ɡɪv/

  • other
  • To administer something, such as medicine
  • To allow someone to have something
  • To produce offspring
  • To cause someone to experience something
  • To provide instructions or guidance
  • To donate something, especially money
  • To provide as an instance
  • To hold or host
  • To perform an action
  • To present something voluntarily to someone
  • To provide something needed or wanted
  • To utter or emit something
  • noun
  • Degree of flexibility in something, a material
  • verb
  • To hand over or present something to someone
  • To cause someone to have or experience something
  • other
  • To collapse or break
  • To collapse or break under pressure
cookie

US /ˈkʊki/

UK /'kʊkɪ/

  • noun
  • A flat, round sweet baked food
ready

US /ˈrɛdi/

UK /'redɪ/

  • adjective
  • Being likely or about to do something
  • Being willing to do a task
  • verb
  • To prepare something for use or action
receipt

US /rɪˈsit/

UK /rɪˈsi:t/

  • noun
  • Act of receiving something
  • A set of instructions for preparing a particular dish, including a list of ingredients.
  • A prescription.
  • Piece of paper showing you have paid
  • A written or printed statement acknowledging that something of value has been received.
  • A set of instructions for preparing a particular dish, including a list of ingredients.
  • other
  • The action of receiving something.
web

US /wɛb/

UK /web/

  • noun
  • Skin between ducks' toes that enables them to swim
  • Internet's collection of interrelated information
  • Net made from silk threads produced by spiders
  • Complicated set of relationships or connections

Click the word to look it up Click the word to find further inforamtion about it