Pronab Pal
Technical Architect, TCS. A software developer, lives in Sydney.
Interactions
Author: Pronab Pal, Technical Architect, TCS
Personal Mobile Phones as Multichanneler
for Devices
with notification + intelligent machine 2 machine conversation
!Continuous improvement in the UI layer matching GPU units [e.g maturity with material design, lollipop,recognition of physics in human space]
x Service invocation spills in easily to the UI thread. [lack of data model]
x No general use of tcp sockets -still unnecessary http dependency [http was a web legacy]
x Age old problem of spaggeti-ness.
Carry over web issues: x sessions continuity, lack of immediate data source to reconnect after a drop out.
x bad sync issues with native and web components with work arounds. x missing strategy for web componenets & native componenets coexistance X vagueness with microservice -what it can be ?
multiple Http Connection establishment costly
2-Way communication , makes notification easy
Bring contextual data in small chunks,readily updatable.
Gives oppertunity to trickle transition to new tech, cleaner codebase
Gives platform to go with "micro services".
socket overhead : in reality no more than http as it remains in its own thread.
New infrastructure : a Quadroo server sitting between apache webserver and mobiles -instead of oracle application server
Akamai is not able to break content in small chunks [micro service]
pnr{3H4NLL}
pnr.segment {3H4NLL,DelBom}
pnr.segment.flightno
{3H4NLL,DelBom,QF22}
pnr.segment.seatno{3H4NLL,DelBom,E45}
pnr.segment.seatno.breakfast{3H4NLL,DelBom,E45,{egg ,toast,coffee,}}
Text
FFPNRREC>
<PNR_Reply>
<pnrHeader>
<reservationInfo>
<reservation>
<companyId>1A</companyId>
<controlNumber>3H4NLL</controlNumber>
<date>311014</date>
<time>0014</time>
</reservation>
</reservationInfo>
</pnrHeader>
<pnrHeader>
<reservationInfo>
<reservation>
<companyId>1A</companyId>
<controlNumber>75IS9U</controlNumber>
<controlType>F</controlType>
</reservation>
</reservationInfo>
<referenceForRecordLocator>
<reference>
<qualifier>ST</qualifier>
<number>2</number>
</reference>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForRecordLocator>
</pnrHeader>
<securityInformation>
<responsibilityInformation>
<typeOfPnrElement>RP</typeOfPnrElement>
<agentId>DISU</agentId>
<officeId>SYDQF0115</officeId>
<iataCode>02398631</iataCode>
</responsibilityInformation>
<queueingInformation>
<queueingOfficeId>SYDQF0115</queueingOfficeId>
</queueingInformation>
<cityCode>MEL</cityCode>
<secondRpInformation>
<creationOfficeId>SYDQF0115</creationOfficeId>
<agentSignature>0001AA</agentSignature>
<creationDate>311014</creationDate>
<creatorIataCode>02398631</creatorIataCode>
<creationTime>0014</creationTime>
</secondRpInformation>
</securityInformation>
<freetextData>
<freetextDetail>
<subjectQualifier>3</subjectQualifier>
<type>P12</type>
</freetextDetail>
<longFreetext>--- AXR RLR RLP ---</longFreetext>
</freetextData>
<pnrHeaderTag>
<statusInformation>
<indicator>AXR</indicator>
</statusInformation>
<statusInformation>
<indicator>RLR</indicator>
</statusInformation>
<statusInformation>
<indicator>RLP</indicator>
</statusInformation>
</pnrHeaderTag>
<sbrPOSDetails>
<sbrUserIdentificationOwn>
<originIdentification>
<originatorId>02398631</originatorId>
<inHouseIdentification1>SYDQF0115</inHouseIdentification1>
</originIdentification>
<originatorTypeCode>A</originatorTypeCode>
</sbrUserIdentificationOwn>
<sbrSystemDetails>
<deliveringSystem>
<companyId>QF</companyId>
<locationId>SYD</locationId>
</deliveringSystem>
</sbrSystemDetails>
<sbrPreferences>
<userPreferences>
<codedCountry>AU</codedCountry>
</userPreferences>
</sbrPreferences>
</sbrPOSDetails>
<sbrCreationPosDetails>
<sbrUserIdentificationOwn>
<originIdentification>
<originatorId>02398631</originatorId>
<inHouseIdentification1>SYDQF0115</inHouseIdentification1>
</originIdentification>
<originatorTypeCode>A</originatorTypeCode>
</sbrUserIdentificationOwn>
<sbrSystemDetails>
<deliveringSystem>
<companyId>QF</companyId>
<locationId>SYD</locationId>
</deliveringSystem>
</sbrSystemDetails>
<sbrPreferences>
<userPreferences>
<codedCountry>AU</codedCountry>
</userPreferences>
</sbrPreferences>
</sbrCreationPosDetails>
<sbrUpdatorPosDetails>
<sbrUserIdentificationOwn>
<originIdentification>
<originatorId>02394372</originatorId>
<inHouseIdentification1>SYDQF0305</inHouseIdentification1>
</originIdentification>
<originatorTypeCode>A</originatorTypeCode>
</sbrUserIdentificationOwn>
<sbrSystemDetails>
<deliveringSystem>
<companyId>QF</companyId>
<locationId>SYD</locationId>
</deliveringSystem>
</sbrSystemDetails>
<sbrPreferences>
<userPreferences>
<codedCountry>AU</codedCountry>
</userPreferences>
</sbrPreferences>
</sbrUpdatorPosDetails>
<technicalData>
<enveloppeNumberData>
<sequenceDetails>
<number>2</number>
</sequenceDetails>
</enveloppeNumberData>
<lastTransmittedEnvelopeNumber>
<currentRecord>1</currentRecord>
</lastTransmittedEnvelopeNumber>
<purgeDateData>
<dateTime>
<year>2015</year>
<month>2</month>
<day>12</day>
</dateTime>
</purgeDateData>
</technicalData>
<travellerInfo>
<elementManagementPassenger>
<segmentName>NG</segmentName>
<lineNumber>0</lineNumber>
</elementManagementPassenger>
<passengerData>
<travellerInformation>
<traveller>
<surname>TESTQANTAS</surname>
<qualifier>G</qualifier>
<quantity>1</quantity>
</traveller>
</travellerInformation>
<groupCounters>
<quantityDetails>
<numberOfUnit>1</numberOfUnit>
<unitQualifier>BKD</unitQualifier>
</quantityDetails>
<quantityDetails>
<numberOfUnit>0</numberOfUnit>
<unitQualifier>CNL</unitQualifier>
</quantityDetails>
<quantityDetails>
<numberOfUnit>0</numberOfUnit>
<unitQualifier>SPL</unitQualifier>
</quantityDetails>
</groupCounters>
</passengerData>
</travellerInfo>
<travellerInfo>
<elementManagementPassenger>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
<segmentName>NM</segmentName>
<lineNumber>1</lineNumber>
</elementManagementPassenger>
<passengerData>
<travellerInformation>
<traveller>
<surname>DI SISTO</surname>
<quantity>1</quantity>
</traveller>
<passenger>
<firstName>CHRISTIAN R MR</firstName>
</passenger>
</travellerInformation>
</passengerData>
</travellerInfo>
<originDestinationDetails>
<originDestination/>
<itineraryInfo>
<elementManagementItinerary>
<reference>
<qualifier>ST</qualifier>
<number>2</number>
</reference>
<segmentName>AIR</segmentName>
<lineNumber>2</lineNumber>
</elementManagementItinerary>
<travelProduct>
<product>
<depDate>120215</depDate>
<depTime>0745</depTime>
<arrDate>120215</arrDate>
<arrTime>0920</arrTime>
</product>
<boardpointDetail>
<cityCode>SYD</cityCode>
</boardpointDetail>
<offpointDetail>
<cityCode>MEL</cityCode>
</offpointDetail>
<companyDetail>
<identification>QF</identification>
</companyDetail>
<productDetails>
<identification>413</identification>
<classOfService>G</classOfService>
</productDetails>
<typeDetail>
<detail>ET</detail>
</typeDetail>
</travelProduct>
<itineraryMessageAction>
<business>
<function>1</function>
</business>
</itineraryMessageAction>
<itineraryReservationInfo>
<reservation>
<companyId>QF</companyId>
<controlNumber>3H4NLL</controlNumber>
</reservation>
</itineraryReservationInfo>
<relatedProduct>
<quantity>1</quantity>
<status>HK</status>
</relatedProduct>
<flightDetail>
<productDetails>
<equipment>73H</equipment>
<numOfStops>0</numOfStops>
<weekDay>4</weekDay>
</productDetails>
<departureInformation>
<departTerminal>3</departTerminal>
</departureInformation>
<arrivalStationInfo>
<terminal>1</terminal>
</arrivalStationInfo>
</flightDetail>
<selectionDetails>
<selection>
<option>P2</option>
</selection>
</selectionDetails>
<markerRailTour/>
</itineraryInfo>
</originDestinationDetails>
<dataElementsMaster>
<marker2/>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>105</number>
</reference>
<segmentName>AP</segmentName>
<lineNumber>3</lineNumber>
</elementManagementData>
<otherDataFreetext>
<freetextDetail>
<subjectQualifier>3</subjectQualifier>
<type>5</type>
</freetextDetail>
<longFreetext>SYD 61 02 96915783 INVALID PLEASE UPDATE-B</longFreetext>
</otherDataFreetext>
<referenceForDataElement>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForDataElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>106</number>
</reference>
<segmentName>AP</segmentName>
<lineNumber>4</lineNumber>
</elementManagementData>
<otherDataFreetext>
<freetextDetail>
<subjectQualifier>3</subjectQualifier>
<type>5</type>
</freetextDetail>
<longFreetext>SYD 61 0407 120988 INVALID PLEASE UPDATE-M</longFreetext>
</otherDataFreetext>
<referenceForDataElement>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForDataElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>173</number>
</reference>
<segmentName>AP</segmentName>
<lineNumber>5</lineNumber>
</elementManagementData>
<otherDataFreetext>
<freetextDetail>
<subjectQualifier>3</subjectQualifier>
<type>5</type>
</freetextDetail>
<longFreetext>131313</longFreetext>
</otherDataFreetext>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>107</number>
</reference>
<segmentName>AP</segmentName>
<lineNumber>6</lineNumber>
</elementManagementData>
<otherDataFreetext>
<freetextDetail>
<subjectQualifier>3</subjectQualifier>
<type>P02</type>
</freetextDetail>
<longFreetext>CHRISTIANDISISTO@QANTAS.COM.AU</longFreetext>
</otherDataFreetext>
<referenceForDataElement>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForDataElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>115</number>
</reference>
<segmentName>TK</segmentName>
<lineNumber>7</lineNumber>
</elementManagementData>
<ticketElement>
<ticket>
<indicator>OK</indicator>
<date>291014</date>
<officeId>SYDQF0115</officeId>
</ticket>
</ticketElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>235</number>
</reference>
<segmentName>SSR</segmentName>
<lineNumber>8</lineNumber>
</elementManagementData>
<serviceRequest>
<ssr>
<type>NSST</type>
<status>HK</status>
<quantity>1</quantity>
<companyId>QF</companyId>
<boardpoint>SYD</boardpoint>
<offpoint>MEL</offpoint>
</ssr>
<ssrb>
<data>19A</data>
<crossRef>46</crossRef>
<seatType>N</seatType>
<seatType>W</seatType>
<seatType>FC</seatType>
</ssrb>
</serviceRequest>
<seatPaxInfo>
<seatPaxDetails>
<genericDetails>
<seatCharacteristic>N</seatCharacteristic>
<seatCharacteristic>W</seatCharacteristic>
</genericDetails>
</seatPaxDetails>
<crossRef>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</crossRef>
</seatPaxInfo>
<referenceForDataElement>
<reference>
<qualifier>ST</qualifier>
<number>2</number>
</reference>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForDataElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>114</number>
</reference>
<segmentName>SSR</segmentName>
<lineNumber>9</lineNumber>
</elementManagementData>
<serviceRequest>
<ssr>
<type>GRPF</type>
<status/>
<companyId>YY</companyId>
<freeText>NRT450</freeText>
</ssr>
</serviceRequest>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>122</number>
</reference>
<segmentName>SSR</segmentName>
<lineNumber>10</lineNumber>
</elementManagementData>
<serviceRequest>
<ssr>
<type>FQTV</type>
<status>HK</status>
<quantity>1</quantity>
<companyId>QF</companyId>
<indicator>P02</indicator>
</ssr>
</serviceRequest>
<frequentFlyerInformationGroup>
<frequentTravellerInfo>
<frequentTraveler>
<company>QF</company>
<membershipNumber>3852439</membershipNumber>
</frequentTraveler>
<priorityDetails>
<qualifier>1</qualifier>
<priorityCode>7</priorityCode>
<tierLevel>FFBR</tierLevel>
</priorityDetails>
</frequentTravellerInfo>
</frequentFlyerInformationGroup>
<referenceForDataElement>
<reference>
<qualifier>PT</qualifier>
<number>46</number>
</reference>
</referenceForDataElement>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<reference>
<qualifier>OT</qualifier>
<number>354</number>
</reference>
<segmentName>SSR</segmentName>
<lineNumber>11</lineNumber>
</elementManagementData>
<serviceRequest>
<ssr>
<type>GRPS</type>
<status/>
<companyId>YY</companyId>
<freeText>TCP50TESTQANTAS</freeText>
</ssr>
</serviceRequest>
</dataElementsIndiv>
<dataElementsIndiv>
<elementManagementData>
<segmentName>SP</segmentName>
</elementManagementData>
<referencedRecord>
<referencedReservationInfo>
<reservation>
<companyId>1A</companyId>
<controlNumber>3HZOVW</controlNumber>
<controlType>P</controlType>
<date>311014</date>
</reservation>
</referencedReservationInfo>
<securityInformation>
<responsibilityInformation>
<typeOfPnrElement>SP</typeOfPnrElement
Quadroo allows a new java class written with
specified pattern as below to be deployable right away by simple copying the class in the war file, no extra configuration needed.
Quadroo Verb pattern:
public class ASWord_S extends QuadRR {
public ASWord_S(QuadRR rr) {
super(rr);
...detail logic here }
Text
Text
UCL are based on words in dictionary taking part as
names in JSON and maintains a currency.
Quadroo has built in support for UCL intepretation and
Mongo data base integration
Node.js makes socket IO responsive.
The feedback loop is more important for humans with devices
Service Consumer:"I want a Double Yummy Burger"
Service Desk : Yes here is your number now go &relax!
Paypal & 1000..more:
https://github.com/joyent/node/wiki/projects,-applications,-and-companies-using-node
A jingle, the node song :
www.youtube.com/watch?v=IkmHStAWXis
*Redundant Payload [xml and http headers etc-legacy]
*expensive[thread bound] network connect
* dedicated mobile resouce
for the time of transaction
*synchronous request
response ties up resources
* min management payload
* duplex [2WAY] ,event driven connection
* cheap node.js connections
asynchronous i/o
* mobile resources free during transaction execution
* asynchronous call
UCL makes it contextual
Node.js / javascript is
BAD for complexity management [both algorithmic and understanability ]E.G:
simple as XML parsing to a multiple depth ..or..
'find the next leg of the flight that starts from Delhi or give window seat next to facilities'
but need more
Java has the wisdom of programming complex algorithm that needs building on abstraction.
Java still needs help in context management in a dynamic world .
UCL is the uniform context language that builds on domain driven words-for managing contexts extends Json
What we get
Responsive UI ;
Disposable devices;
Allways in Sync To Data Source [web and native ubiquity]
On time notification of truth from Source [ucl socket]
Content Presented for Action in Context [through async microservice]
Numerous Device and beacons will be trying to talk to the App in context.
beacon is guiding passenger where is the departure gate
thru bluetooth /near magnetic fields
We need to manage context of these interaction through the App
How can we embed the solutions in today infrastructure and still give a super device & UI experience?
Q&A
Thank You
By Pronab Pal
Asynchronous, Small chunks Of Data