1. A computer-readable storage medium storing computer executable instructions for implementing a method of receiving data on an input queue and confirming a schema and content object, the method comprising: receiving a message at a first queue associated with a service; verifying a protocol message schema of the message includes a version, a requester, a type enumeration, and a content object; verifying the content object to include a predetermined type matching the type enumeration, the predetermined type selected from a set of predetermined types, the set including at least each of aRegisterDevice type, defined as: <xs:simpleType name=“DeviceType” > <xs:restriction base=“xs:string”> <xs:enumeration value=“Prepaid” /> <xs:enumeration value=“Subscription” /> </xs:restriction> </xs:simpleType> a CreatePrepaidPacket type, defined as: <xs:complexType name=“CreatePrepaidPacket”> <xs:sequence> <xs:element name=“PUID” type=“xs:string” /> <xs:element name=“TrackingGuid” tvpe=“xs:string” /> <xs:element name=“Points” tvpe =“xs:int” /> <xs:element name=“HWJD” tvpe=“xs:string” /> <xs:element name=“UPID” type=“xs:string” /> <xs:element name=“Minutes” type=“xs:int” /> </xs:sequence> </xs:complexType> a CertRequest type, defined as: <xs:complexType name=“CertReguest”> <xs:sequence> <xs:element name=“InitKey” type=“xs:string” /> <xs:element name=“HWJD” type=“xs:string” /> <xs:element name=“Reguest” type=“xs:string” /> <xs:element name=“UPID” type=“xs:string” /> </xs:sequence> </xs:complexType> a PacketDownload type, defined as: <xs:complexType name=“PacketDownload”> <xs:sequence> <xs:element name=“JobIds” maxOccurs=“unbounded”> <xs:complexType> <xs:sequence> <xs:element name=“JobId” type=“xs:long” /> <xs:element name=“DownloadCount” type=“xs:int” /> <xs:element name=“DownloadOverLimit” type= “xs:boolean”/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> a PacketDownloadAek Type, defined as: <xs:complexType name=“PacketDownloadAck”> <xs:sequence> <xs:element name=“JobIds” maxOccurs=“ unbounded”> <xs:complexType> <xs:sequence> <xs:element name=“Jobld” type=“xs:long” /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> a SubscribeDevice Type, defined as: <xs:complexType name=“SubscribeDeviee”> <xs:sequence> <xs:element name=“DeviceName” type=“xs:string” /> <xs:element name=“BeginDate” tvpe=“xs:date” /> <xs gelement name=“EndDate” type= “xs:date” minOccurs=“0” /> <xs:element name=“Mode” type=“SubscriptionMode” /> </xs:sequence> </xs:complexType> aConfigureDevice type, defined as: <xs:complexType name=“ConfigureDevice”> <xs:sequence> <xs:element name=“DeviceName” type=“xs:string” /> <xs:element name=“GracePeriodInMinutes” type=“xs:int” minOccurs=“0” /> <xs:element name=“EnforcementLevel” tvpe=“EnforcementLevelType” minOccurs=“0” /> </xs:sequence> </xs:complexType> a ConfigureDefault type, defined as: <xs:complexType name=“ConfigureDefault”> <xs:sequence> <xs:element name=“MaxCertDownloadCount” type=“xs:int” minOccurs=“0” /> <xs:element name=“MaxPacketDownloadCount” type=“xs:int” minOccurs=“0” /> <xs:element name=“EnforcementLevel” type=“EnforcementLevelType” minOccurs=“0” /> <xs:element name=“GracePeriodlnMinutes” type=“xs:int” minOccurs=“0” /> <xs:element name=“PreProcessPeriodlnDays” type=“xs:int” minOccurs=“0” /> <xs:element name=“EnforcementPeriod” type= “xs:int” minOccurs=“0” /> <xs:element name=“EnforcementPeriodTimeUnit” type=“TimeUnitType” minOccurs=“0” /> </xs:sequence> </xs:complexType> a CreateSubscriptionPacket type, defined as: <xs:complexType name=“CreateSubscriptionPacket”> <xs:sequence> <xs:element name=“DeviceName” type=“xs:string” /> <xs:element name=“PacketEndDate” type=“xs:date” /> <xs:element name=“Perpetual” type=“xs:boolean” /> </xs:sequence> </xs:complexType> a BatchIn type, defined as: <xs:complexType name=“BatchIn”> <xs:sequence> <xs:element name=“BatchId” type=“xs:string” /> <xs:element name=“PartnerId” type=“xs:string” /> <xs:element name=“CallbackUrl” type=“xs:string” /> <xs:element name=“Item” maxOccurs=“unbounded”> <xs:complexType> <xs:sequence> <xs:choice> <xs:element name=“RegisterDevice” type= “RegisterDevice” /> <xs:element name=“SubscribeDevice” type=“SubscribeDevice” /> <xs:element name=“ConfigureDevice” type=“ConfigureDevice” /> <xs:element name=“ConfigureDefault” type=“ConfigureDefault” /> <xs:element name=“CreateSubscriptionPacket” type=“CreateSubscriptionPacket” /> </xs:choice> <xs:element name=“Type” type=“RequestType” /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> a ScheduleSubscriptionPacket type, defined as: <xs:complexType name=“ScheduleSubscriptionPacket”> <xs:sequence> <xs:element name=“SchedulerJobId” type=“xs:long” /> <xs:element name=“NextDate” type=“xs:date” /> <xs:element name=“PacketEndDate” type=“xs:date” /> </xs:sequence> </xs:complexType> a QueryBatchOut type,defined as <xs:complexType name=“QueryBatchOut”> <xs:sequence> <xs:element name=“PartnerId” type=“xs:string” /> <xs:element name=“BatehId” tvpe=“xs:string” /> <xs:element name=“CallbackUrl” type=“xs:string” /> </xs:sequence> </xs:complexType> and a StartPendingJob type, defined as: <xs:complexType name=“StartPendingJob” <xs:sequence> <xs:element name=“JobId” tvpe=“xs:long” /> <xs:element name=“JobType” type=“xs:int” /> <xs:element name=“Data” type=“xs:string” /> </xs:sequence </xs:complexType> and removing the message from the first queue when one of the verifying the protocol message schema fails and the verifying the content object fails.