Proposal for new debtags facet: "system"

Enrico Zini enrico at
Sat Jan 21 14:55:57 UTC 2012


after some brainstorming with Thomas Goirand on IRC[2] about where to
place a "cloud" tag, the idea came out for a "system::*" facet as a spin
off of the "hardware::*" one, to represent the specific class of systems
a package can be specific for.

The idea is to take tags hardware::embedded and hardware::laptop out of the
hardware facet, leaving hardware more clearly defined as "peripherals", oo
"things with chips that you stick on a system", and add an orthogonal facet to
represent what kind of system a package would be specific for.

Here is a draft of the proposed new facet:

  Facet: system
  Description: Class of system
   Class of system a package provides specific functionality for.[1]

  Tag: system::cloud
  Description: Cloud
   Cloud computing is the delivery of computing as a service rather than
   a product, whereby shared resources, software, and information are
   provided to computers and other devices as a metered service over a
   network (typically the Internet).

  Tag: system::embedded
  Description: Embedded
   A computer system designed for specific control functions within a larger

  Tag: system::laptop
  Description: Laptop
   A personal computer for mobile use.

  Tag: system::server
  Description: Server
   A physical computer (a computer hardware system) dedicated to
   running one or more such services (as a host),[1] to serve the needs
   of users of the other computers on the network. Depending on the
   computing service that it offers it could be a database server, file
   server, mail server, print server, web server, or other.

  Tag: system::smartphone
  Description: Smartphone
   High-end mobile phone built on a mobile computing platform.

  Tag: system::tablet
  Description: Tablet
   A mobile computer, larger than a mobile phone or personal digital assistant,
   integrated into a flat touch screen and primarily operated by touching the
   screen rather than using a physical keyboard

I believe such a facet has *lots* of potential, and I am rather excited
about it.

Some notes up for discussion:

 - We could argue about where hardware::emulation belongs. I'd leave it
   in hardware because an emulated machine looks more like a virtual
   peripheral to me, rather than something that runs specific
   application. In a way, we could say that hardware::* is for software
   that works WITH that hardware, while system::* is for software that
   works IN that hardware.

 - Smartphones and tablets are becoming less and less like two different
   classes of systems: with tablets having GSM modems and smartphones
   working like tablets, one could say that a tablet is a smartphone
   that doesn't fit in a pocket. That means that most software that's
   typical of one platform will also be typical of the other one, and
   in fact apps are now developed targeting both systems as one.

   So they could very well be a single tag; the only problem is: how do
   we name it? Is there a better name than system::smartphone-tablet?

I'd give it a week worth of discussion, after which I'll try to wrap it
up and make it happen.

[1] This description in a better kind of English written needs to be.
[2] So you could know how we got to this proposal, here is the IRC
    conversation (I cut away the various digressions and other channel
    conversation, I hope I didn't cut anything relevant)

 enrico> zigo: I need to reread your mail to see if I catch the
	 difference with admin::virtualisation; it's either I add that,
	 or I propose a "buzzword" sort of facet with tags for all those
	 names that people recognise
 zigo> Cloud computing *is not a buzz word*.
 zigo> jwilk: In short, management of a pool of servers for providing
       virtualmachines and storage.
 zigo> Only people who don't understand what it is think it's a buzz
 zigo> We wouldn't have about 100 binary packages in Debian *only* for
       doing cloud computing if it was just a buzz word.
 zigo> enrico: If you want to know why admin::virtualization isn't good
       for cloud, just think about server storage like Swift.
 enrico> zigo: right, so the idea would be to restrict
	 admin::virtualisation to one-machine virtualisation
	 infrastructure, and have admin::cloud to refer to
	 migration/cloning/ui frontend/api interfaces?
 zigo> It doesn't do virtualization, has little do do with it, but it's
       managing potentially 100s of servers.
 enrico> uhm, ok, so things like openstack can also turn blades or
         servers on and off?
 zigo> Yup.
 zigo> Even physical machines.
 zigo> Like, for saving on power.
 enrico> ack
 zigo> There's also cloud without virtualization.
 zigo> Like, through an API, you'd get a new physical server.
 zigo> Get your OS installed automatically, and have your application to
       run on it.
 zigo> And possibly, do that with 10 servers at a time.
 enrico> so now another question is: is the level of abstraction of
	 "cloud" one that fits in the "admin" facet? It sounds a bit
	 more high levle than "configuring" "boot", "backup", "login"...
 enrico> how about a "solution::*" facet
 zigo> Basically, these are administration tools.
 zigo> So that you can remote-control servers.
 zigo> So yes, Admin:: would fit, IMO.
 enrico> zigo: uhm ok. So the tools themselves are as administration as
	 'admin::login', only the system they manage is at a different
	 abstraction level than, say, a single server. And that'd be
	 fine indeed.
 zigo> Right.
 zigo> For example, quantum is a tool that manages VLANs for your cloud.
 zigo> So that each "customer" has the illusion that he's on its own
       VLAN, and wont see other private LANs.
 zigo> Using VLAN tagging on switches, and configuring openvswitch.
 zigo> That kind of things ...
 zigo> So that's really admin::
 enrico> zigo: otoh (still pondering) it's also ortogonal: you could do
	 accounting, automation, backup, and son on, but "for cloud
 enrico> zigo: so it could be, for example, hardware::cloud
 enrico> zigo: that way I can say admin::power-management &&
 zigo> The issue I have with hardware:: is that it looks like it's full
       of drivers.
 zigo> Am I wrong?
 enrico> zigo: there's hardware::embedded, for example, which has
         embedded UI tools like GPE
 zigo> Like, I've put Swift (cloud object storage) to use
       hardware::storage, but it's confusing.
 zigo> It's a tool that uses rsync to have a level of redundancy.
 zigo> It doesn't act *at all* as a driver.
 zigo> People looking at for example iSCSI tools will find swift, and
       that's not what we want.
 zigo> You know better than me though.
 zigo> Maybe that would fit.
 enrico> zigo: right. is
	 somewhat close, in that it says "this software is used in this
	 specific class of hardware". Please ignore touchscreen drivers
	 in that page: they are mistagged
 zigo> Ok.
 enrico> zigo: but if we think of tags to describe a "class of system",
	 then cloud, server, embedded, tablet, smartphone could sound
	 like points along the same axis
 enrico> (and they could be factored out of 'hardware' into a 'system'
         facet, at some point)
 enrico> zigo: I'm going for lunch, then I'll reply to your mail in
	 debtags-devel along the lines of thinking of a 'system' facet
 zigo> enrico: I like the "class of system" concept.
 zigo> I really do.
 enrico> zigo: then we see what people say
 zigo> It'd be great to have a phone tag ...
 enrico> zigo: indeed. It's a tricky conceptual game, designing
         ontologies, isn't it? :)
 zigo> It is.



GPG key: 4096R/E7AD5568 2009-05-08 Enrico Zini <enrico at>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <>

More information about the Debtags-devel mailing list